Semplici sequenze di comandi

Contenuto del capitolo
Comandi semplici, l'uso di Python come calcolatrice, l'uso delle parentesi per calcolare il risultato corretto e l'uso di stringhe di formato per combinare testo e numeri. Come terminare Python dall'interno di un programma.

Il più elementare programma che possiamo scrivere è una semplice sequenza di comandi. La sequenza più semplice è costituita da un solo comando. Adesso ne proveremo alcuni. Il titolo del paragrafo indica cosa dovete scrivere al "prompt" di Python, il paragrafo spiegherà che cosa succede.

>>> print 'Ciao gente!'

Il comando print chiede a Python di mostrarvi un risultato. In questo caso scriverà la sequenza di caratteri 'C', 'i', 'a', 'o', ' ', 'g', 'e', 'n', 't', 'e', '!'. Tale sequenza di caratteri è definita nel gergo dei programmatori stringa di caratteri o semplicemente stringa.

Una stringa è caratterizzata dal fatto che è racchiusa fra virgolette. Si possono usare sia le virgolette semplici (come sopra) che quelle doppie: "una stringa". Questo ci consente di includere un tipo di virgolette in una stringa racchiusa con virgolette dell'altro tipo, cosa utile per l'apostrofo:

>>> print "Utile per l'apostrofo contiene un apostrofo..."

Si possono visualizzare altre cose, oltre le stringhe:

>>> print 6 + 5

Qui abbiamo visualizzato il risultato di una operazione aritmetica: la somma di cinque e sei. Python riconosce i numeri ed il segno di addizione e li somma. Quindi mostra il risultato.

Adesso abbiamo trovato un uso per Python: una semplice calcolatrice portatile.

Provate qualche altra somma. Usate altri operatori aritmetici:

Combinate espressioni multiple:

>>> print ((8 * 4) + (7 - 3)) / (2 + 4)

Notate il modo in cui sono utilizzate le parentesi per raggruppare i numeri. Cosa succede se si scrive la stessa sequenza senza le parentesi? Il risultato dipende dal fatto che Python calcola le moltiplicazioni e le divisioni prima delle somme e sottrazioni. Questo rispecchia ciò che ci si aspetta dal punto di vista matematico, ma potrebbe non essere quello che si aspetta il programmatore! Tutti i linguaggi di programmazione possiedono regole per determinare la sequenza di valutazione delle operazioni e ciò viene detto precedenza fra operatori. Sarà necessario fare riferimento alla documentazione di ciascun linguaggio per verificare come funziona in ciascun caso. Con Python le regole sono quelle suggerite dalla logica e dall'intuizione, ma in qualche caso può non essere cosí...

Come regola generale è più prudente usare le parentesi per essere sicuri di ottenere il risultato voluto quando si utilizzano lunghe serie di operazioni come queste.

Un'altra cosa da notare:

>>> print 5/2

Il risultato è un numero intero (in questo caso 2). Questo perché Python si accorge che i due numeri sono interi ed assume che vogliate un risultato intero. Se si desidera il risultato con la virgola (come al solito nella notazione anglosassone si usa il punto ".", anziché la virgola; N.d.T.) è sufficiente scrivere uno dei due numeri con la virgola:

>>> print 5/2.0
2.5
Python individua il 2.0 e capisce che non abbiamo problemi a lavorare con i numeri con le virgole (i numeri di questo tipo si chiamano, nel gergo dei programmatori, reali o a virgola mobile o floating point in Inglese), cosí risponde con un risultato con i decimali. Se volete invece trattare con i numeri interi, potete usare il segno % allo stesso modo dell'operatore della divisione. Python scriverà il resto:
>>> print 7/2
3
>>> print 7%2
1
>>> print 7%4
3

% è detto l'operatore modulo o mod ed in altri linguaggi viene indicato spesso con MOD o qualcosa di simile.

Fate qualche esperimento; vi farete un'idea più precisa.

>>> print "Il totale e': ", 23+45

Abbiamo visto che è possibile visualizzare stringhe e numeri. Adesso combiniamo le due cose in un solo comando print, separandole con una virgola. Possiamo anche migliorare questa operazione combinandola con un trucco assai utile di Python per visualizzare i dati: la stringa di formato:

>>> print "La somma di %d e %d e': %d" % (7,18,7+18)

In questo comando la stringa di formato contiene al suo interno dei simboli '%'. La lettera 'd' dopo il % indica a Python che in quel punto deve essere scritto un numero decimale. I valori da scrivere al posto dei simboli sono ricavati dall'espressione fra parentesi che segue il segno % separatore.

Ci sono altre lettere che possono seguire i simboli %. Alcune di queste sono:

Nella documentazione di Python ne troverete molte altre.

In effetti potete visualizzare qualunque oggetto di Python con il comando print. Talvolta il risultato non sarà quello sperato (magari solo una breve descrizione del tipo di oggetto), ma in ogni caso potrete visualizzarlo.

>>> import sys

Questo è uno strano comando. Se lo provate vedrete che apparentemente non fa niente. Ma non è proprio cosí. Per capire che cosa accade dobbiamo analizzare l'architettura di Python (per i programmatori in altri linguaggi: fidatevi, ci sarà un meccanismo simile anche per voi!).

Quando lanciate Python avete a disposizione un gruppo di comandi già disponibili detti built-in ("incorporati") perché sono incorporati nel nucleo stesso di Python. Python comunque può estendere la lista di comandi disponibili grazie a moduli di estensione. È un po' come comprare un nuovo utensile nel vostro negozio di bricolage preferito e metterlo nella cassetta degli arnesi. L'utensile è rappresentato dalla parte sys e l'operazione import lo mette nella cassetta.

L'effetto del comando è in definitiva quello di rendere disponibili parecchi nuovi "strumenti" sotto forma di comandi Python che sono definiti in un file di nome "sys.py". Questo è il meccanismo che estende Python in modo da permettergli di svolgere operazioni aggiuntive che non fanno parte del sistema di base. Potete perfino creare moduli vostri, importarli ed usarli, esattamente allo stesso modo dei moduli aggiuntivi forniti con l'installazione di Python.

Come si usano questi nuovi strumenti?

>>> sys.exit()

Oops! Cosa è successo? Semplicemente abbiamo esguito il comando exit definito nel modulo sys. Questo comando termina il programma Python. (Nota: normalmente si esce da Python digitando il carattere 'End of File' (EOF) al prompt >>> - CTRL-Z sotto DOS o CTRL-D sotto Unix).

Notate che exit è seguito da due parentesi. Ciò perché exit è una funzione definita in sys e tutte le volte che si usa una funzione Python dobbiamo scriverla con le parentesi, anche se fra di esse non c'è niente.

Provate a scrivere sys.exit senza le parentesi. Python risponde dicendo che exit è una funzione invece di eseguirla!

Per finire notiamo che gli ultimi due comandi sono utili solo se usati in combinazione. Cioè per uscire da Python senza usare il carattere EOF dovrete scrivere:

import sys
sys.exit()

Questa è una sequenza di due comandi! Ci stiamo avvicinando alla programmazione vera e propria...

Usare Tcl

Si possono scrivere semplici comandi come quelli esposti sopra anche in Tcl. L'interprete Tcl viene lanciato scrivendo tclsh80 (supponendo che abbiate la versione 8.0 di Tcl) al prompt del DOS. Il prompt dei comandi è un segno '%'. Provate i seguenti comandi:

% put "Ciao gente"
Ciao gente
% put [expr 4 + 6]
10

Notate che nell'ultimo esempio la parte fra parentesi quadre viene valutata per prima ed il risultato viene passato al comando put. Al contrario di quanto avviene in Python, il comando put non tenta di capire il significato dell'espressione; si aspetta una stringa di caratteri ed è nostro compito fare in modo che il suo argomento sia una stringa.

Per uscire da tclsh80 è sufficiente scrivere exit al prompt.

Ed anche il BASIC ...

Per lanciare il BASIC scrivete QBASIC al prompt del DOS. In questo caso entrerete in un vero e proprio ambiente di programmazione. Sbarazzatevi della finestra di benvenuto ecc. e potrete scrivere i comandi nella finestra di edit e successivamente eseguire i comandi che avete scritto usando il menù Run. Il vantaggio è che è possibile correggere i comandi ed inoltre che il sistema fa qualche verifica su di essi mentre li state scrivendo.

Scrivete i seguenti comandi e quindi eseguiteli:

PRINT "Ciao gente"
PRINT 4+6

Come al solito potete uscire con la voce Exit del menù File.

Come primo approccio alla programmazione non è stato troppo doloroso, spero. Comunque prima di proseguire dovremo dare uno sguardo alle materie prime della programmazione, i dati, e a ciò che possiamo farne.

Promemoria
  • Anche un solo comando è un programma
  • Python tratta la matematica quasi come uno se lo aspetta.
  • Per ottenere un risultato con la virgola occorre usare numeri con la virgola.
  • Si possono combinare testo e numeri usando l'operatore di formato %.
  • Per terminare Python scrivete: import sys; sys.exit()

Precedente  Successivo  Indice


Se avete domande o suggerimenti relativi a questa pagina mandate un e-mail all'autore: alan.gauld@yahoo.co.uk o al traduttore italiano: lfini@arcetri.astro.it