[successivo]
[precedente]
[inizio]
[fine]
[indice generale]
[indice analitico]
Capitolo 1. Primo esempio di programma Python
Per cominciare a cogliere un'idea delle caratteristiche(1) di Python, si consideri il problema della somma di due numeri positivi espressa attraverso il concetto dell'incremento unitario: n+m equivale a incrementare m, di un'unità, per n volte, oppure incrementare n per m volte. L'algoritmo risolutivo è banale, ma utile per apprendere il funzionamento dei cicli; il listato 1.1 presenta la soluzione tramite pseudocodifica.
Listato 1.1. Somma ciclica (pseudocodifica).
SOMMA (X, Y)
LOCAL Z INTEGER
LOCAL I INTEGER
Z := X
FOR I := 1; I <= Y; I++
Z++
END FOR
RETURN Z
END SOMMA
|
|
Tenendo presente che in Python l'incremento unitario della variabile variabile; si esprime con l'idioma
il listato 1.2 traduce l'algoritmo in un programma Python completo e commentato.
Listato 1.2. Primo esempio in Python.
#!/usr/bin/python
##
## somma.py <x> <y>
## Somma esclusivamente valori positivi.
##
#
# Importa il modulo sys, per usare sys.argv
#
import sys
#
# somma(<x>, <y>)
#
def somma(x, y):
z = x
for i in range(y):
z += 1
return z
#
# Inizio del programma.
#
x = int(sys.argv[1])
y = int(sys.argv[2])
z = somma(x, y)
print x, "+", y, "=", z
|
|
Si noti in particolare la compattezza del programma Python: solo dieci righe «utili», contro le sedici dell'equivalente programma in Perl (listato 1.3) e addirittura ventidue dell'equivalente programma in C (listato 1.4).
Listato 1.3. Somma ciclica (Perl).
#!/usr/bin/perl
##
## somma.pl <x> <y>
## Somma esclusivamente valori positivi.
##
#
# &somma (<x>, <y>)
#
sub somma
{
local ($x) = $_[0];
local ($y) = $_[1];
#
local ($z) = $x;
local ($i);
#
for ($i = 1; $i <= $y; $i++)
{
$z++;
}
#
return $z;
}
#
# Inizio del programma.
#
$x = $ARGV[0];
$y = $ARGV[1];
#
$z = &somma ($x, $y);
#
print "$x + $y = $z\n";
#
|
|
Listato 1.4. Somma ciclica (C).
/* ================================================================= */
/* somma <x> <y> */
/* Somma esclusivamente valori positivi. */
/* ================================================================= */
#include <stdio.h>
/* ================================================================= */
/* somma (<x>, <y>) */
/* ----------------------------------------------------------------- */
int somma (int x, int y)
{
int z = x;
int i;
for (i = 1; i <= y; i++)
{
z++;
};
return z;
}
/* ================================================================= */
/* Inizio del programma. */
/* ----------------------------------------------------------------- */
int main (int argc, char *argv[])
{
int x;
int y;
int z;
/* Converte le stringhe ottenute dalla riga di comando in
numeri interi e li assegna alle variabili x e y. */
sscanf (argv[1], "%d", &x);
sscanf (argv[2], "%d", &y);
z = somma (x, y);
printf ("%d + %d = %d\n", x, y, z);
return 0;
}
|
|
Informatica per sopravvivere 2006.02.01 --- Copyright © 2004-2006 Massimo Piai -- <pxam67 (ad) virgilio·it>
1) Salvo diverso avviso, nel seguito si farà riferimento alla versione 2.3 del linguaggio.
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome primo_esempio_di_programma_python.html
[successivo]
[precedente]
[inizio]
[fine]
[indice generale]
[indice analitico]