Vai al contenuto

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).
Di seguito forniamo un esempio in cui variamo alcuni dei valori di default:
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)