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
inputche chiede di inserire il nome viene mostrata a video; inputattende che l'utente digiti il nome (Ezio) e prema Invio;inputrestituisce il nome inserito come stringa;- la stringa restituita da
inputviene assegnata alla variabilenome; - la variabile
nomepuò 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:
inputchiede all'utente di inserire un raggio che viene assegnato alla variabileraggio;- la funzione
floatviene usata per convertireraggio(che è una stringa) in un valore numerico con la virgola che viene assegnato alla variabiler; - le due variabili (
raggioer) vengono stampate per mostrare che la prima è una stringa (quindi rappresentata tra'...') mentre la seconda è un numero; rviene poi usata per calcolare l'area del cerchio (**è l'operatore di elevazione a potenza) e la funzioneprintviene usata per stampare la stringa'Area:'e il risultato dell'espressione3.14 * r**2;rviene usata anche per calcolare la circonferenza eprintper 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.
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: