Fino ad ora abbiamo sempre lavorato con IDLE. Ripetiamo che IDLE è una CLI (Command Line Interface), cioè un'interfaccia che legge una linea di testo digitata da noi e la fa eseguire a Python. Un linguaggio di programmazione deve permettere però di unire più linee di comando per formare un insieme più complesso, che viene genericamente chiamato un programma (in Python si usa il termine script).
Dato che dovremo salvare i programmi che scriveremo ci converrà, prima di iniziare, creare una cartella "Programmi Python" tra i nostri documenti e salvare tutti i file in questa cartella per poterli ritrovare e modificare facilmente in seguito.
Una tradizione dell'informatica vuole che quando si impara un linguaggio di programmazione, il primo programma che si scrive sia un programma che stampa la frase "Hello, world!". Vediamo come fare: apriamo IDLE e clicchiamo sulla voce di menù File=>New; si aprirà un'altra finestra, l'editor di testo.
Da ora in poi lavoreremo soprattutto su questa finestra, ma dovremo sempre tenere d'occhio IDLE. Ci conviene arrangiare le due finestre sullo schermo del nostro monitor in modo da vederle entrambe, affiancate. Nella nuova finestra digitiamo quindi:
print("Hello world!")
Vediamo che anche se premiamo Invio non succede nulla. Abbiamo scritto il nostro primo programma,
ma Python non farà nulla finche non lo eseguiamo. Clicchiamo sulla voce di menù Run=>Run
module. L'editor ci chiederà di salvare il programma in un file su disco. Salviamolo nella cartella che
abbiamo creato con il nome hello.py
(i file che contengono codice Python devono avere suffisso
.py). A questo punto il file verrà eseguito: cosa succede? Nella finestra di IDLE viene stampata
la stringa Hello world!
.
Proviamo adesso ad inserire dopo la prima altre due righe:
print("Hello world!")
print("Ciao mondo!")
print("HAHAHAHA")
Cliccando di nuovo su Run=>Run module l'editor si accorgerà che il file è stato modificato e ci chiederà di salvarlo nuovamente. Dopodichè eseguirà il programma stampando le tre stringhe una dopo l'altra.
In un programma abbiamo quindi una successione di linee di codice (Inglese: code lines) che vengono eseguite in sequenza, una dopo l'altra.
Dobbiamo far notare alcune cose sulla nuova finestra nella quale abbiamo scritto il nostro hello.py. La nuova applicazione è un editor di testo, cioè un programma orientato alla scrittura di files di testo come quelli dei programmi Python.
Questo vuol dire che, a differenza di quanto accade in IDLE, possiamo liberamente correggere quello che abbiamo scritto, inserire nuove linee, usare il copia ed incolla e l'annulla/ripeti come in Word. Quello che non troviamo sono tutti i comandi di formattazione: infatti i programmi Python (come per tutti i linguaggi di programmazione) devono essere composti solamente da caratteri di testo.
Nell'editor troviamo invece alcune caratteristiche che aiutano i programmatori, come la colorazione della sintassi (già vista in IDLE): le parole che scriviamo vengono colorate diversamente secondo il loro significato (in verde le stringhe, in viola i nomi delle funzioni, in arancione le parole chiave Python ...). Abbiamo anche una voce di menù Format che ha alcune utility che vedremo in seguito.
Quando vogliamo eseguire il nostro programma dobbiamo usare la voce di menù Run=>Run module: Python eseguirà il programma dirigendo tutto l'input/output su IDLE: per questo conviene tenere aperte e visibili le due finestre contemporaneamente.
Da ora in poi quando vi dirò di digitare un programma è sottinteso che scriveremo nell'editor e useremo IDLE per l'I/O del programma. Qualche volta però useremo ancora IDLE per fare dei semplici esempi, come quelli che abbiamo fatto finora: in tal caso vi avvertirò esplicitamente.
Attualmente il nostro programma hello.py
si compone di tre linee. Ognuna di esse chiama la
funzione print
: a cosa serve questa nuova funzione? Provate a modificare hello.py
inserendo altre tre linee:
print("Hello world!")
print("Ciao mondo!")
print("HAHAHAHA")
3 + 2
a = 5
a + 6
Cosa cambia eseguendo il programma? Assolutamente niente! Infatti durante l'esecuzione di un
programma, a differenza che in IDLE, i risultati delle espressioni non vengono stampati automaticamente. Ciò è
voluto, in modo da lasciare al programmatore il controllo su cosa stampare e cosa no. La funzione print()
serve appunto a stampare i suoi argomenti in output.
La funzione print
prende un numero variabile di argomenti di qualsiasi tipo e li
stampa su IDLE. Non restituisce nessun valore. Gli argomenti vengono stampati sulla stessa riga, ma tra un argomento
e l'altro inserisce automaticamente uno spazio; alla fine va a capo (il successivo print
stampa
su una nuova riga).
Possiamo cancellare dal programma le tre righe inutili che avevamo scritto (oppure possiamo usare
Edit=>Undo) e salvarlo di nuovo. Ora facciamo click su File=>New file
e potremo cominciare un nuovo programma, che chiameremo prova_print.py
(nota:
d'ora in poi ogni volta che troverete "NUOVO PROGRAMMA" farete queste operazioni: è importante salvare via
via i vecchi programmi perchè a volte li riprenderemo per migliorarli man mano che impareremo cose nuove). Scriviamo:
print ("mamma", "ti", "amo")
a = 4
b = 6
print (a, b, a+b)
ed eseguendo il programma dovremmo ottenere questo output:
mamma ti amo
4 6 10
Facciamo notare che, se scriviamo print(a)
, Python stampa il valore
della variabile a
(cioè 4) e non il suo nome. Se vogliamo un output più
leggibile dobbiamo mescolare stringhe e variabili e scrivere cose come questa:
print("a = ", a)
Così stampiamo prima la stringa "a = "
e poi il valore di a
.
"4 + 6 = 10"
(SUGGERIMENTO: i due segni "+" e "=" vanno aggiunti mediante delle stringhe).c
e poi stampare
"Il quadrato di 5 e' 25"
(usare la variabile nella print()
)Notate che negli esercizi precedenti sarebbe facile dare come argomento di print
direttamente
la stringa "4 + 6 = 10"
o "il quadrato di 5 e' 25"
. Tuttavia nella programmazione
si preferisce usare il più possibile le variabili anzichè le costanti. Il motivo è semplice: se ora cambiamo
il valore di a, b
o c
le funzioni print()
stamperanno automaticamente
i nuovi valori calcolandoli per noi senza bisogno di cambiare nulla.
mamma ti amo
11345 + 23469 = 34814
Il quadrato di 843 e' 710649
SUGGERIMENTO: se avete usato le variabili a, b, c nella print()
basta cambiare il loro valore.La funzione print()
permette di inserire nelle stringhe alcuni caratteri speciali grazie
a delle sequenze che cominciano con il carattere "\" (escape sequences)
Sequenza | Carattere | Esempio |
---|---|---|
\n |
Nuova linea (va a capo) | "Prima linea\nSeconda linea" |
\t |
Tabulazione (salta alcuni spazi) | "a\tb\tc\td" |
\" |
Stampa il carattere " all'interno della stringa | "Queste \" sono virgolette" |
Se scriviamo una stringa con degli escape in IDLE, otterremo come risposta la stringa esattamente
come l'abbiamo immessa. Se invece la facciamo stampare con print()
(sempre da IDLE) otterremo
la stringa come verrà stampata in un programma.
>>> "Prima riga\nSeconda riga"
'Prima riga\nSeconda riga'
>>> print("Prima riga\nSeconda riga")
Prima riga Seconda riga
>>> print("Rosa\nRosae\nRosae\nRosa\nRosae\nRosa")
>>> print("\"\"\"\"")
>>> print("10\t100\1000")
>>> print("10 \t100 \t1000")
>>> print(" 10 \t 100 \t 1000")
>>> print("10\t\t100\t\t1000")
>>> print("Questi sono tre numeri:\n\t\t10\t\t100\t\t1000")
Provare anche a stampare gli esempi riportati nella tabella sopra
I piccoli programmi che abbiamo scritto per iniziare erano lunghi meno di 10 linee, ma un programma commerciale può contarne anche migliaia! Ad un programmatore professionista capita spesso di dover modificare programmi scritti molto tempo prima (ad esempio per correggere errori o aggiungere nuove caratteristiche), ed a questo punto diventa indispensabile capire "cosa fa il programma", rileggendo ed interpretando pazientemente le linee di codice. Vi assicuro che spesso, a distanza di qualche mese, nemmeno chi ha scritto il programma riesce a ricordare il significato di tutto quello che ha scritto.
Per questo motivo tutti i linguaggi di programmazione permettono di inserire dei
commenti, cioè delle parti di codice che vengono ignorate dal linguaggio ma che
possono essere lette da una persona "umana": così è possibile intercalare alle linee di codice delle linee che
spiegano cosa stiamo facendo, documentando il nostro programma. In Python i commenti sono preceduti dal
carattere #
: quando in una linea Python trova questo carattere, ignora tutto ciò che viene
dopo fino alla fine della linea stessa.
Aggiungiamo alla fine di prova_print.py
queste altre due linee:
# Questa e' una linea intera di commento
print("Ciao") # Qui il commento inizia dopo l'istruzione
Eseguendo il programma vedremo che stamperà anche il "Ciao" finale. Per prova togliete uno dei
#
: otterrete un errore di sintassi perchè Python cerca di leggere i nostri commenti come
se fossero una parte del programma.
hello.py
e prova_print.py
e aggiungete ad
entrambi una linea di commento all'inizio del file, in modo da chiarire a chi lo legge qual è lo scopo del
programma:# Questo e' il mio primo programma
(in hello.py
)# Questo programma dimostra l'uso della funzione print()
(in prova_print.py
)Fine della lezione