Input utente
Perché l’input è importante?
Section titled “Perché l’input è importante?”Un programma che fa sempre le stesse cose con gli stessi dati è limitato. Con l’input utente, il programma può fare domande e comportarsi in modo diverso in base alle risposte. Questo è il primo passo per creare programmi davvero interattivi.
La funzione input()
Section titled “La funzione input()”input() mostra un messaggio e poi si mette in attesa: il programma si ferma finché l’utente non scrive qualcosa e preme Invio.
nome = input("Come ti chiami? ")print(f"Ciao, {nome}!")Esempio di esecuzione:
Come ti chiami? AliceCiao, Alice!Il testo dentro le parentesi di input() è il messaggio che viene mostrato all’utente.
Attenzione: input() restituisce sempre testo
Section titled “Attenzione: input() restituisce sempre testo”Anche se l’utente digita un numero, input() lo tratta sempre come testo (stringa). Se vuoi fare calcoli, devi convertire:
# Questo NON funziona per fare calcoli:eta_testo = input("Quanti anni hai? ")# eta_testo è una stringa, es. "16" — non il numero 16!
# Converti con int() per avere un numero intero:eta = int(input("Quanti anni hai? "))print(f"Tra 10 anni avrai {eta + 10} anni.")
# Converti con float() per numeri decimali:altezza = float(input("Altezza in metri: "))print(f"Altezza: {altezza} m")Cosa succede se l’utente sbaglia?
Section titled “Cosa succede se l’utente sbaglia?”Se l’utente digita “pippo” invece di un numero e tu usi int(), il programma crasha con un errore.
Per gestire questo caso elegantemente, usa try/except:
try: numero = int(input("Inserisci un numero: ")) print(f"Hai inserito: {numero}")except ValueError: print("Quello non era un numero! Riprova.")Continuare a chiedere finché la risposta è valida
Section titled “Continuare a chiedere finché la risposta è valida”Un pattern molto comune: ripetere la domanda finché l’utente non inserisce un valore accettabile.
while True: try: eta = int(input("Inserisci la tua età: ")) if eta < 0 or eta > 120: print("Età non valida. Inserisci un numero tra 0 e 120.") continue # riparte dall'inizio del ciclo break # esce dal ciclo se tutto è ok except ValueError: print("Scrivi un numero, non del testo.")
print(f"La tua età è: {eta}")Esempio pratico: calcolatrice
Section titled “Esempio pratico: calcolatrice”print("Calcolatrice semplice")print("-" * 20)
try: a = float(input("Primo numero: ")) operazione = input("Operazione (+, -, *, /): ") b = float(input("Secondo numero: "))
if operazione == "+": risultato = a + b elif operazione == "-": risultato = a - b elif operazione == "*": risultato = a * b elif operazione == "/": if b == 0: print("Errore: non si divide per zero!") else: risultato = a / b else: print("Operazione non riconosciuta.")
print(f"Risultato: {a} {operazione} {b} = {risultato}")
except ValueError: print("Inserisci solo numeri validi.")