Il mio compito è sommare una serie di numeri usando un ciclo, e quel ciclo richiede che il valore sentinella di 0
si fermi. Dovrebbe quindi visualizzare i numeri totali aggiunti. Finora, il mio codice è:Aggiungi numeri ed esci con una sentinella
total = 0
print("Enter a number or 0 to quit: ")
while True:
number = int(input("Enter a number or 0 to quit: "))
print("Enter a number or 0 to quit: ")
if number == 0:
break
total = total + number
print ("The total number is", total)
Eppure, quando l'eseguo, non stampa il numero totale dopo che entro 0
. Stampa solo "Enter a number or 0 to quit"
, sebbene non sia un ciclo infinito.
Questa e le altre risposte sfruttano il fatto che il valore sentinella è 0 e quindi è sicuro di aggiungere incondizionatamente il numero di input al totale e controllare in seguito se il ciclo deve uscire. Funziona, ma è forse un po 'troppo intelligente - se un giorno il valore sentinella dovesse cambiare, diciamo -1, sarebbe facile perdere che dovremmo non solo cambiare il 'numero! = 0' del test 'numero! = -1', ma in realtà cambia l'intera struttura del ciclo. –
Grazie, ha funzionato! –