In questa lezione facciamo la conoscenza di due funzioni basilari di Python: print
e input
. Queste funzioni servono rispettivamente a mostrare e a chiedere valori all'utente. Entrambe sono particolarmente utili durante la creazione dei primi test e programmi a riga di comando, ma lo saranno anche in futuro.
Abbiamo già visto, nelle passate lezioni, la funzione print
, che serve a “stampare” in output (tipicamente sullo schermo, ma volendo anche su file o altri stream) il valore di una variabile o di una espressione.
>>> a = 12
>>> b = 3
>>> print(a, b, a-b)
12 3 9
>>>
>>> c = 'Hello'
>>> print(c, 'World!')
Hello World!
Si può notare che la funzione print
accetta in input un numero variabile di argomenti (anche di tipi diversi), li converte in stringhe, e li mostra in output separati da uno spazio e seguiti da un carattere di ritorno a capo (\n
). print
consente inoltre di specificare il separatore, il carattere finale, lo stream, e altri parametri.
Quando si lavora dall'interprete interattivo non è necessario utilizzare print
per vedere il valore di una variabile o espressione, ma è sufficiente digitarla:
>>> x = 10
>>> x
10
>>> x * 2
20
Questa possibilità è disponibile solo dall'interprete interattivo; quando si esegue un programma, invece, è necessario utilizzare print
esplicitamente.
Nota: in Python 2.x, print
era uno statement, e non era quindi necessario inserire i parametri tra parentesi. Omettere le parentesi in Python 3.x (dove print
è una funzione) significa commettere un errore di sintassi. In Python 2.x è inoltre possibile usare from __future__ import print_function
per rendere print
una funzione come in Python 3.
input
La funzione input
viene usata per consentire all'utente di immettere dati da tastiera, che verranno poi utilizzati dal programma.
input
accetta un singolo argomento opzionale: una stringa che viene mostrata a video prima di leggere il valore digitato. Una volta che l'utente ha digitato un valore e premuto il tasto Invio, input
restituisce il valore come stringa, come mostra il seguente esempio:
>>> nome = input('Inserisci il tuo nome: ')
Inserisci il tuo nome: Ezio
>>> nome
'Ezio'
In questo esempio possiamo vedere che:
- la stringa passata a
input
che chiede di inserire il nome viene mostrata a video; input
attende che l'utente digiti il nome (Ezio) e prema Invio;input
restituisce il nome inserito come stringa;- la stringa restituita da
input
viene assegnata alla variabilenome
; - la variabile
nome
può poi essere utilizzata per accedere al nome inserito dall'utente.
Se si desidera immettere valori numerici o di altri tipi, è possibile convertire la stringa restituita da input
usando funzioni come int
o float
:
>>> raggio = input('Inserisci il raggio: ')
Inserisci il raggio: 8.4
>>> r = float(raggio)
>>> raggio, r
('8.4', 8.4)
>>> print('Area:', 3.14 * r**2)
Area: 221.5584
>>> print('Circonferenza:', 2 * 3.14 * r)
Circonferenza: 52.752
In questo esempio possiamo vedere che:
input
chiede all'utente di inserire un raggio che viene assegnato alla variabileraggio
;- la funzione
float
viene usata per convertireraggio
(che è una stringa) in un valore numerico con la virgola che viene assegnato alla variabiler
; - le due variabili (
raggio
er
) vengono stampate per mostrare che la prima è una stringa (quindi rappresentata tra'...'
) mentre la seconda è un numero; r
viene poi usata per calcolare l'area del cerchio (**
è l'operatore di elevazione a potenza) e la funzioneprint
viene usata per stampare la stringa'Area:'
e il risultato dell'espressione3.14 * r**2
;r
viene usata anche per calcolare la circonferenza eprint
per stampare la stringa'Circonferenza:'
e il risultato dell'espressione2 * 3.14 * r
;
Nota: in Python 2.x esistevano due diverse funzioni di input: raw_input
e input
. La prima è equivalente a input
di Python 3.x, mentre la seconda (che effettuava uno step aggiuntivo di conversione implicita dell'input) è stata rimossa da Python 3.x. Come abbiamo visto nel secondo esempio, in Python 3.x è possibile convertire i valori letti da input
esplicitamente.