Input/Output
Python fornisce numerose funzioni integrate che ci consentono di interfacciarci con il prompt.
Alcune di queste funzioni, come ad esempio
input()
e print()
, sono ampiamente utilizzate, rispettivamente, per le operazioni standard di input e output. Incominciamo a vedere per prima la sezione dedicata agli output.
Output mediante print()
Come abbiamo già avuto modo di vedere nelle precedenti sezioni, possiamo usare la funzione
print()
per stampare i dati sul prompt. Un esempio del suo utilizzo è dato qui sotto:
print('questa frase viene stampata sullo schermo')
# output: questa frase viene stampata sullo schermo
a = 5
print('il valore di a è', a)
# output: il valore di a è 5
La sintassi della funzione
print()
è
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
Si noti in particolare che:
objects
sono gli oggetti che verranno stampati;sep
è il separatore che sarà utilizzato tra i diversi oggetti (il suo valore di default è il carattere spazio);end
è ciò che viene stampato subito dopo gli oggetti (il suo valore di default è\n
, che corrisponde all'andata a capo);file
indica dove l'oggetto sarà stampato (il suo valore di default èsys.stdout
, ovvero il prompt di Python).
print(1,2,3,4)
# output: 1 2 3 4
print(1,2,3,4,sep='*')
# output: 1*2*3*4
print(1,2,3,4,sep='#',end='&')
# output: 1#2#3#4&
A volte vorremmo formattare il nostro output per renderlo più elegante. Ciò può essere fatto usando il metodo
str.format()
. Questo metodo può essere applicato a qualsiasi oggetto stringa. Nell'esempio seguente, le parentesi graffe {}
sono usate come segnaposti per l'inserimento degli oggetti da stampare; possiamo inoltre specificare l'ordine di stampa indicizzando le parentesi stesse, o addirittura utilizzare delle keyword come argomenti al loro interno:
print('ordine di arrivo: {0}, {1}'.format('vettel','raikkonen'))
# output: ordine di arrivo: vettel, raikkonen
print('ordine di arrivo: {1}, {0}'.format('vettel','raikkonen'))
# output: ordine di arrivo: raikkonen, vettel
print('mi chiamo {nome} {cognome}'.format(nome='franco',cognome='rossi'))
# output: mi chiamo franco rossi
Input mediante input()
Fino ad ora, i nostri programmi sono stati statici, nel senso che il valore delle variabili è stato definito o codificato nel codice sorgente.
Per consentire flessibilità, potremmo voler prendere l'input dell'utente. In Python, abbiamo la funzione
input()
a tal fine. La sintassi per input()
è:
input([prompt])
dove
prompt
è la stringa (opzionale) che vogliamo mostrare sullo schermo. Val la pena osservare che qualsiasi valore fornito in ingresso dall'utente tramite la funzione input()
sarà un oggetto stringa e che, quindi, potrà esserci il bisogno di convertire l'input nel formato desiderato:
num = input('inserire un numero intero: ')
# >>> inserire un numero intero:
# >>> 10
# l'utente ha inserito il numero 10, ma num è in realtà la stringa '10';
# la convertiamo perciò in un intero:
num = int(num)