Il primo programma¶
Come scrivere il nostro primo programma, un programma che non fa niente, un programma che fa qualcosa.
Finalmente abbiamo gli strumenti per scrivere qualcosa di significativo, qualcosa di abbastanza complicato da valer la pena di conservare, un programma.
Aperto IDLE
, attraverso il menu File - New Window
creiamo un nuovo file
vuoto. Prima ancora di incominciare a scriverci qualcosa lo salviamo, nella
nostra cartella, con il nome “primo.py”. È importante l’estensione “.py” che
avvisa il sistema operativo, e IDLE
stesso, che questo è un programma
Python.
Abbiamo scritto il nostro primo programma! Possiamo anche eseguirlo in uno di
questi due modi:
- Menu: Run - Run Module
- tasto: <F5>
Fa un po’ poco, ma in compenso, di sicuro, non contiene errori!!! Forse è il caso di cominciare a riempirlo.
Per prima cosa aggiungiamo delle istruzioni che non fanno niente, dei commenti. Ogni linguaggio permette di scrivere dei commenti. E i commenti sono molto importanti per rendere leggibile il codice e per renderlo comprensibile ad altri o anche a sé stessi a distanza di tempo. In Python ci sono più modi per farlo. Sono commenti:
- le righe che iniziano con il carattere cancelletto: “#”
- le porzioni di testo delimitati da tre apici singoli o doppi: “”“”” o “’‘’”
Ogni programma deve avere all’inizio dei commenti che forniscono alcune informazioni come minimo: data, autore, titolo. Il commento iniziale potrebbe essere:
# 27-08-11
# il mio primo programma
# Mario Rossi
Prima di scrivere un programma, bisogna avere un’idea abbastanza precisa di cosa deve fare questo programma. Nel nostro caso iniziamo a creare un programma che stampi a video le tavole numeriche, quelle con i quadrati, i cubi,le radici quadrate e radici cubiche. Per prima cosa modifichiamo il titolo del programma. Poi (magari andando a riguardare le informazioni sui cicli) scriviamo le istruzioni per stampare semplicemente i numeri da 0 a 100:
for num in range(101):
print "%s" % num
Alcune osservazioni:
- Mentre nella
shell
diIDLE
una volta scritto un comando, quando si preme il tasto<Invio>
, magri 2 volte, il comando viene eseguito, qui il tasto<Invio>
ha solo il significato di andare a capo. - In un programma, noi scriviamo le istruzioni, per eseguirle dobbiamo dirlo
esplicitamente a Python, lo si può fare in uno dei due modi visti sopra, il
più svelto è premere
<F5>
. - Prima di eseguire un programma, Python lo salva sul disco.
- Il risultato del programma (l’output) lo vediamo nella finestra di IDLE. Conviene quindi disporre le due finestre in modo che permettano di vedere il programma e l’output del programma.
Bene, se tutto funziona abbiamo un bell’elenco di numeri scritti uno sotto l’altro, ma l’allineamento a sinistra non è carino: torniamo al programma e modifichiamolo in modo da riservare 5 spazi per questi numeri:
for num in range(101):
print "%5s" % num
Con il solito <F5>
verifichiamo che il programma faccia quello che vogliamo
noi. Aggiungere i quadrati e i cubi non è una novità dato che questo problema è
già stato risolto quando abbiamo visto il ciclo for
. Magari potrà servire
qualche prova per aggiustare gli allineamenti:
for num in range(101):
print "%5s" % (num, num*num, num*num*num)
quando eseguiamo questo programma otteniamo il seguente deludente risultato:
Traceback (most recent call last):
File "/dati/daniele/06-07/scuola/materiali/informatica/python/primo.py",
line 8, in -toplevel-
print "%5s" % (num, num*num, num*num*num)
TypeError: not all arguments converted during string formatting
Se vogliamo imparare a programmare dobbiamo abituarci a queste sorprese e imparare a leggere i messaggi di errore. Nel precedente messaggio ci sono diverse informazioni: il nome del file, la riga incriminata e il tipo di errore.
Possiamo tradurre il messaggio così:
“Nella linea 8 del file primo.py ci sono dei valori che non sono potuti
entrare nella stringa formattata.”
Torniamo a modificare il programma inserendo i segnaposti mancanti:
for num in range(101):
print "%4s %6s %8s" % (num, num*num, num*num*num)
Questi valori potrebbero andare. Ora dobbiamo inserire altre due colonne e calcolare le radici quadrate e cubiche. Abbiamo già visto che Python senza il supporto di apposite librerie non è in grado di calcolare le radici, quindi dobbiamo modificare il programma in modo che importi la libreria math.
Aggiungiamo prima del ciclo il comando:
import math
Riassumendo
- Un programma è un documento di testo che contiene le istruzioni che devono essere eseguite.
- Concettualmente dobbiamo distinguere bene la fase di scrittura del programma, dalla fase di esecuzione.
- In pratica conviene scrivere un pezzetto di programma, provarlo, correggerlo, riprovarlo e, quando quel pezzo produce quello che vogliamo noi, aggiungere altre funzionalità.
- Durante la programmazione è inevitabile commettere errori. I messaggi di errore, se letti, sono di grande aiuto.
Prova tu
- Completa il programma precedente. Come è possibile far calcolare la radice cubica se non c’è una apposita funzione?
- Aggiungi al programma le istruzioni che stampino anche l’intestazione della tabella.
- Scrivi il programma “secondo.py” che stampi le lunghezze dei lati dei triangoli rettangoli isosceli con i cateti che variano tra 1 a 10.