Input in Python
In molti casi è utile permettere di inserire dei dati “da fuori al programma”, ovvero valori decisi da chi esegue il programma stesso. Per fare questo si utilizza la funzione input().
La funzione input()
La funzione input() permette di leggere un valore digitato dall’utente tramite la tastiera. Il programma si ferma in attesa che l’utente scriva qualcosa e prema Invio.
Esempio:
nome = input("Come ti chiami? ")
print("Ciao", nome)
In questo codice c’è praticamente scritto questo: inserisci all’interno della variabile “nome” il valore che leggi da tastiera (in input) e poi stampa la stringa “Ciao” e il valore inserito all’interno della variabile “nome” (che era stato preso in input da tastiera)
Scritto in maniera più ordinata:
- il programma mostra la frase
Come ti chiami?; - l’utente scrive un valore;
- il valore inserito viene memorizzato nella variabile
nome.
Attenzione al tipo: il valore restituito da input() è una stringa
È importante ricordare che input() restituisce sempre un valore di tipo str, cioè una stringa. Questo accade anche quando l’utente inserisce numeri.
Esempio:
numero = input("Scrivi un numero da 1 a 6")
risultato = numero + 3
print(risultato)
In questo caso il programma restituirà errore, perchè “numero” è in realtà una stringa e non un numero!
Convertire l’input in numero
Se si vuole usare il valore inserito per fare calcoli, è necessario convertirlo nel tipo corretto.
Conversione in intero con int()
numero = int(input("Scrivi un numero da 1 a 6"))
risultato = numero + 3
print(risultato)
In questo esempio:
input()legge il valore inserito dall’utente;int()converte quel valore in un numero intero;- il programma può usare il valore per eseguire calcoli.
Conversione in decimale con float()
altezza = float(input("Quanto sei alto? "))
print(altezza)
float() viene usato quando il valore può contenere cifre decimali.
Attenzione agli errori di conversione
Quando scriviamo:
numero = int(input("Inserisci un numero: "))
stiamo dicendo che il programma si aspetta un intero, ma l’utente può comunque inserire un valore diverso (lettere, stringhe, simboli). Il programma legge il valore e restituisce errore quando prova a convertirlo in intero, e questo è…normale!
Esempio completo
nome = input("Come ti chiami? ")
eta = int(input("Quanti anni hai? "))
print(f"Ciao {nome}, l'anno prossimo avrai {eta + 1} anni")
Ricapitoliamo
input()permette di leggere un valore inserito dall’utente;- il valore restituito da
input()è sempre una stringa; - per usare numeri è necessario convertire il valore con
int()oppurefloat().