Vedere con print, spiegare con i commenti
Come print scrive più cose insieme, come sep e end cambiano il risultato e perché esistono i commenti — il tuo primo strumento per vedere dentro un programma in esecuzione.
Come vuoi imparare?
Il problema che stiamo risolvendo
Hai scritto un programma. Lo hai eseguito. Il terminale non ha detto nulla.
Ha funzionato? Si è fermato a metà? Che risultato aveva il calcolo al suo interno? Non c'è modo di saperlo, perché un computer non offre nulla di sua iniziativa — quello che vuoi vedere, devi chiederlo tu.
print è il modo per chiederlo. All'inizio è la tua unica finestra: dove è arrivato il programma, cosa contiene una variabile, che cosa ha prodotto il calcolo. Gli sviluppatori esperti inseriscono chiamate a print nel codice molte volte al giorno, anche avendo un debugger a portata di mano — non c'è niente di male in ciò, fa parte del lavoro.
Alla fine di questo capitolo sarai in grado di
- Stampare più cose in una sola chiamata e controllare lo spazio tra una e l'altra
- Modificare l'output con
sepeend - Riconoscere la differenza tra stringhe (testo) e numeri — perché
"2" + "3"non è2 + 3 - Scrivere commenti e capire quali commenti vale davvero la pena scrivere
Prerequisiti: Il terminale, le cartelle e il tuo primo progetto.
print accetta più di un valore
Separa quanti valori vuoi con le virgole e print li scrive tutti su una riga:
print("Order", 7, "confirmed")Order 7 confirmedNota che non hai mai digitato uno spazio, eppure le parole sono uscite ben separate. print inserisce da solo uno spazio tra ogni valore separato da virgola.
E alla fine di ogni print passa a una riga nuova:
print("line one")
print("line two")line one
line twoUn print() vuoto produce solo una riga vuota — il modo più semplice per spezzare un output lungo in gruppi leggibili.
sep — lo spazio, a modo tuo
Se quello spazio non è quello che vuoi, cambialo:
print("2026", "09", "10", sep="-")
print("home", "user", "notes.txt", sep="/")
print("a", "b", "c", sep="")2026-09-10
home/user/notes.txt
abcend — cosa succede alla fine della riga
Di default print chiude la riga e scende. Anche questo è regolabile:
print("Loading", end="")
print(".", end="")
print(".", end="")
print(". done")Loading... doneQuattro chiamate a print separate, una riga di output — perché alle prime tre è stato detto di non mettere nulla alla fine della riga.
Le stringhe e i numeri non sono la stessa cosa
Queste due righe sembrano quasi identiche, ma si comportano in modo diverso:
print(2 + 3)
print("2" + "3")5
23Tra virgolette è una stringa (testo), e + non somma — unisce. Fuori dalle virgolette è un numero, e + somma davvero.
Questa distinzione è la base dei capitoli che seguono, ed è anche la causa di circa metà degli errori che i principianti incontrano. Per ora ricorda solo la regola: le virgolette significano stringa.
Commenti — le righe che Python non legge
Da un # fino alla fine di quella riga, Python ignora tutto:
# Friday delivery report
total = 12 + 8
print("Total:", total) # the sum shown at the bottom of the reportTotal: 20I commenti non hanno alcun effetto sul modo in cui gira il programma. Sono per le persone — per il tuo collega, e per te tra tre mesi, quando avrai già dimenticato tutto questo.
*Un buon commento spiega perché, non cosa.* Quello che fa il codice si vede nel codice:
# Weak: repeats what the code already says
count = count + 1 # add 1 to count
# Useful: gives the reason, which the code cannot show
count = count + 1 # the header row was counted too, so shift by oneDal primo non impari nulla — la riga somma palesemente uno. Il secondo dice perché si somma uno, e nessuna quantità di lettura del codice potrebbe dirtelo.
Mentre impari, i commenti hanno un altro uso — mettere una riga fuori servizio temporaneamente per vedere come si comporta il programma senza di essa:
print("first")
# print("second")
print("third")first
thirdUn esempio completo
Crea report.py e eseguilo:
# A small sales report
print("=" * 24)
print("SALES REPORT")
print("=" * 24)
print("Items sold:", 3 + 5 + 2)
print("Revenue:", 3 * 120 + 5 * 90 + 2 * 250)
print()
print("Prepared by", "Rafi", sep=": ")========================
SALES REPORT
========================
Items sold: 10
Revenue: 1310
Prepared by: RafiNota la riga vuota dopo Revenue: 1310 nell'output — proviene dal print() vuoto. Separa l'ultima parte del report.
Guarda anche "=" * 24. Moltiplicare una stringa per un numero fa sì che Python la ripeta quel numero di volte, quindi non c'è bisogno di digitare ventiquattro segni uguale a mano per tracciare un filetto.
Quando qualcosa va storto
SyntaxError: unterminated string literal È stata aperta una virgoletta e non è mai stata chiusa. print("Hello) fa esattamente questo. Conta le virgolette di apertura e di chiusura.
Ti serve una virgoletta dentro la stringa Usa un tipo fuori e l'altro dentro: print("It's working") oppure print('She said "yes"').
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)? Scrivere print "Hello" produce questo errore. È sintassi di Python 2. In Python 3 print è una funzione, quindi ha bisogno delle parentesi: print("Hello"). L'errore arriva di solito per via di un vecchio tutorial o di una risposta trovata online.
Dare a sep o end un valore senza virgolette print("a", "b", sep=-) dà SyntaxError: invalid syntax. sep e end accettano sempre una stringa: sep="-".
In che lingua si scrivono i commenti? Python accetta commenti in qualsiasi lingua — ciò che viene dopo #, Python non lo legge. Ma nel codice che condividi con altri o che usi al lavoro, scrivi i commenti in inglese. Il motivo è pratico: non tutti nella squadra a cui arriva il tuo codice leggeranno la tua lingua, e i messaggi di errore, la documentazione e le risposte che trovi online sono tutti in inglese. Per questo tutto il codice di questo corso — commenti, nomi di variabili, nomi di file — è in inglese, e solo la spiegazione è nella tua lingua.
Passo 4 di 6 — Prevedi
Verifica cosa hai capito
Cosa appare esattamente nel terminale quando vengono eseguite queste tre righe?
print("a", "b", "c", sep="-")
print("x", end=" ")
print("y")- Aa-b-c x y
- Ba-b-c x y
- Cabc x y
- Da-b-c x y
Entrambe le righe usano +. Qual è l'output?
print(2 + 3)
print("2" + "3")- A5, poi un errore — `+` non può essere usato con le stringhe
- B5 5
- C5 23
- D23 23
Cosa stampa questo programma, e perché?
price = 250
# price = 400
print("Price:", price)- A`Price: 400` — vale il valore successivo
- BUn errore — la stessa variabile non può essere assegnata due volte
- C`Price: 250` — la seconda riga è un commento, quindi Python non la legge mai
- D`Price: 250` poi `Price: 400` — entrambe le righe vengono eseguite
Per rispondere serve un account
Accedi per verificare le tue risposte
Le domande sono qui sopra, e ragionarci a mente è la parte che conta. Accedi per vedere le risposte, le spiegazioni e i suggerimenti a tre livelli.
Tocca a te
Scrivi un file chiamato profile.py che produca esattamente questo output:
------------------------
NAME : Rafi
ROLE : Python learner
------------------------
Age next year: 23Tre condizioni:
- I filetti in alto e in basso devono essere prodotti con la moltiplicazione, non digitando ventiquattro trattini
- Le righe
NAME : RafieROLE : Python learnerdevono usaresep - Nella riga
Age next year, non digitare il numero tu stesso — ottienilo con una somma, ad esempio22 + 1
E metti un commento sulla prima riga del file che spiega perché il file esiste — non cosa fa.
In questa missione c’è di più
Quello che hai letto sopra è la missione completa: non è stato tagliato nulla. Pro aggiunge:
- Cosa succede davvero dietro le quinte: come Python lo esegue
- La soluzione completa dell’esercizio, svolta passo per passo
- Esercizi extra più difficili
- La domanda da colloquio su questo argomento, con una risposta modello
Passo 6 di 6
Sfida — il quiz del capitolo
Dieci domande dalla più facile alla più difficile. Le ultime sono difficili di proposito.
Accedi per fare il quiz