Corso Python / Variabili, commenti, input e output
In Python una variabile associa un nome a un valore, input() legge testo e print() mostra un risultato. Anche quando digiti delle cifre, l’input è una stringa: convertilo in numero prima di usarlo nei calcoli.
Assegnare valori e usare i commenti
L’operatore = calcola l’espressione a destra e associa il risultato al nome a sinistra. Non verifica un’uguaglianza matematica. Una nuova assegnazione allo stesso nome cambia il valore usato dalle istruzioni successive:
amount = 3500
amount = amount + 500
print(amount) # Display the calculated result
Il risultato è 4000: la seconda riga legge il precedente valore di amount, aggiunge 500 e riassegna il risultato. Il testo dopo # è un commento e non viene eseguito. Un commento è utile per spiegare unità, scelte o vincoli; non serve ripetere ogni istruzione con altre parole.
Scegli nomi che descrivano il dato, come amount per un importo. Evita di usare print, input o list come nomi di variabili: nasconderesti funzioni e tipi predefiniti. Se l’hai fatto in una sessione interattiva, avviare una nuova sessione ripristina i nomi originali.
Eseguire un programma completo con input e output
Crea una cartella di esercitazione e salva il seguente codice nel file UTF-8 input_expense.py. Non sono necessarie librerie esterne. Dal terminale della cartella, con l’interprete del progetto selezionato, esegui python input_expense.py. Se su macOS o Ubuntu usi un’installazione fuori dall’ambiente virtuale, il comando disponibile può essere python3. Per verificare l’ambiente consulta la guida su venv e pip.
name = input("name: ").strip()
amount_text = input("amount: ").strip()
amount = int(amount_text)
print(f"{name}: {amount:,} KRW")
Alla richiesta name: digita lunch e premi Invio; alla richiesta amount: digita 8000 e premi Invio. Il nome significa «pranzo», mentre KRW indica i won sudcoreani usati nell’esempio. Lo standard output del programma, senza i caratteri digitati dall’utente, è:
name: amount: lunch: 8,000 KRW
Questo blocco raccoglie solo ciò che il programma scrive. In un terminale interattivo vedrai normalmente anche gli input e gli Invio: le richieste appariranno su righe diverse. I prompt di input() non aggiungono da soli una nuova riga.
Seguire il passaggio dal testo al numero
La prima riga legge il nome della spesa e strip() elimina gli spazi iniziali e finali. La seconda riga fa lo stesso con l’importo, ma amount_text resta testo. Solo int(amount_text) crea un intero, memorizzato nel nome amount. La documentazione di input e delle funzioni predefinite descrive questi tipi di ritorno e le conversioni.
La lettera f davanti alla stringa consente di inserire valori tra parentesi graffe. Nella parte {name} compare il nome; in {amount:,} la virgola richiede la separazione delle migliaia. La specifica ufficiale della formattazione distingue questa opzione dalla formattazione dipendente dalla lingua: qui 8000 appare come 8,000, senza convertire la valuta e senza adottare automaticamente i separatori italiani.
Se inserisci 20, il dato iniziale è la stringa "20"; dopo la conversione è il numero intero 20. Un numero scritto dentro una stringa non diventa numerico solo perché sembra una quantità. strip() rimuove spazi ai bordi, ma non corregge separatori, lettere o cifre decimali.
Cambiare un input e riconoscere gli errori
- Esegui nuovamente il file con lo stesso nome e importo
9000: il risultato deve terminare con9,000 KRW. - Prova
8000.5:int()non interpreta una stringa con punto decimale e generaValueError. Non si tratta di arrotondamento. - Prova un importo vuoto oppure
abc: anche questi valori generanoValueError. Ripristina8000e verifica il risultato originale.
Il programma minimo termina quando la conversione fallisce: non contiene un ciclo per chiedere di nuovo il dato. Accetta invece zero e numeri negativi, perché la conversione a intero non applica una regola sulle spese; accetta anche un nome vuoto. Un’applicazione reale deve decidere quali valori ammettere e come chiedere una correzione.
Se il cursore resta fermo dopo una richiesta, controlla se input() sta semplicemente aspettando una risposta. Un errore di conversione si riconosce dal traceback e dal nome ValueError; l’attesa di input non è un’eccezione. Per capire il comportamento, segui i nomi e il punto esatto in cui il testo viene convertito.




