In applicazioni in cui si desidera interagire con un utente, è necessario conoscere le funzioni del codice di programmazione che ci permettono di interagire tramite le perfieriche di input. In particolare, la via più comune per inserire dei valori all’interno di un computer è attraverso la tastiera. Tutti i linguaggi di programmazione forniscono dei comandi per consentire questo tipo di interazione tra programma ed utilizzatore. Il python non fa eccezione ed in questo post vi mostrerò le funzioni che permettorno al programmatore di richiedere un input da tastiera all’utilizzatore del suo programma.
La funzione input()
Per tutti i tipi di interazione con la tastiera, in python è possibile utilizzare la funzione input(). Essa agisce in modo molto semplice:
- Visualizza la stringa (ovvero il messaggio) inserito dal programmatore all’interno delle parentesi tondo, come argomento della stessa funzione.
- Mette il programma in pausa in attesa dell’interazione dell’utente. L’utente è libero di inserire qualsiasi valore sulla riga di comando, vale a dire lettere, numeri e altri caratteri.
- L’utente inserisce dei valori e preme invio.
- La funzione restituisce questi valori come output. Va da sé che, se questo input è necessario a successive elaborazioni, tali valori saranno salvati dal programmatore in una variabile dello script.
Se è la prima volta che senti parlare della funzione input(), non entrare nel panico. Quanto descritto sopra potrebbe metterti in confusione ma se proseguirai nella lettura di questo post, tutto ti sarà più chiaro grazie agli esempi.
Assegnare un input da tastiera ad una variabile del programma python
Cominciamo dall’operazione base, ovvero di lettura di un input qualsiasi da tastiera ed assegnazione di questo input ad una variabile. Questo significa che, in questo momento, non ci preoccupiamo del formato di questo valore: l’utente potra inserire liberamente numeri, lettere o altri caratteri. Con il seguente codice, python tratterà l’input come stringa (sequenza di caratteri qualsiasi) e l’assegnerà ad una variabile.
var = input("Scrivi qualcosa e premi INVIO: ")
Con questa linea di codice, l’utente leggerà sullo schermo la scritta “Scrivi qualcosa e premi INVIO: “. Il cursore lampeggerà in attesa di un input dell’utente. L’utente potrà scrivere qualcosa, ad esempio il suo nome
Scrivi qualcosa e premi INVIO: Mario
Dopo aver premuto invio, la stringa inserita (nell’esempio “Mario”) verrà salvata nella variabile var.
A questo punto, possiamo per esempio stampare a video il contenuto della variabile nel seguente modo
print(var)
Questa istruzione visualizzerà sullo schermo, appunto, la parola “Mario”.
Leggere un valore numerico da tastiera in python
Supponiamo invece di aver bisogno, nel nostro script python, di leggere da tastiera un valore numerico. Per semplicità, supponiamo di volere in particolare un numero intero. Tutto quello che dobbiamo fare è sfruttare la funzione int() di python. Questa funzione converte un qualsiasi valore in un numero intero. Funziona anche con le stringhe. Più nello specifico, essa convertirà la variabile indicata come argomento tra parentesi da un tipo “qualsiasi” al tipo “intero”.
Nel nostro caso, se abbiamo letto da tastiera tramite la funzione input(), ci ritrovere con una variabile di tipo stringa. Anche se essa contiene dei numeri è considerata dal calcolatore come una sequenza di caratteri e non come un numero vero e proprio. Indicando le stringhe tra apici, la nostra conversione serve ad effettuare la conversione
"123" >> 123
Per approfondire la differenza tra tipi di variabili, come per esempio la differenza tra stringhe e valori numerici, ti consiglio di leggere questo articolo. Questa conversione è necessaria se, nelle successive righe di codice, vogliamo utilizzare le operazioni matematiche di python (le quali chiaramente funzionano solo con le variabili di tipo numerico).
Nel nostro caso, applichiamo una conversione da stringa a intero all’input da tastiera. Basta semplicemente modificare il nostro precedente comando nel seguente modo:
var = int(input("Scrivi qualcosa e premi INVIO: "))
Questo codice funzionerà esattamente come il precedente ma, prima di assegnare il valore alla variabile var, lo convertirà nel formato desiderato (ovvero, in numerico intero).