input1 = raw_input("Hello enter a list of numbers to add up!")
lon = 0
while input1:
input1 = raw_input("Enter numbers to add")
lon = lon + input1
print lon
Questo programma dovrebbe aggiungere tutti i numeri dati. Non funzionerebbe quindi ho provato a fare una lista:
input1 = raw_input("Hello enter a list of numbers to add up!")
lon = []
while input1:
input1 = raw_input("Enter numbers to add")
lon.append(input1)
print sum(lon)
e ancora non funzionerebbe? Qualche soluzione perché? Sono un principiante con Python e lo sto facendo solo da circa un mese. Grazie!
risposte:
2 per risposta № 1input1= int(raw_input("Enter numbers to add"))
Devi digitare cast, dato che quello che stai inserendo è una stringa. Questo dovrebbe risolvere il problema.
O come ha fatto notare Keith Randall, usa input("Enter numbers to add")
anziché.
0 per risposta № 2
Prima di tutto, presumo che il tuo rientro sia corretto (tab / spazi per l'istruzione all'interno del ciclo while) - altrimenti, dovresti correggerlo.
Inoltre, raw_input restituisce una stringa. Nel primo esempio, è possibile sostituirlo con "input" e funzionerebbe.
Nel secondo esempio, puoi dividere la stringa in numeri e applicare la somma a loro, in questo modo:
input1 = raw_input("Enter numbers to add")
lon.extend(map(int, input1.split()))
Nota che ho usato "estendi" e non aggiunto - altrimenti, aggiungerei l'elenco di numeri come un elemento di lista all'interno dell'elenco, invece di estenderlo con nuovi numeri.
0 per risposta № 3
Sembra che tu voglia terminare con un input vuoto, quindi dovresti controllarlo prima di provare a trasformarlo in un int
print "Hello enter a list of numbers to add up!"
lon = 0
while True:
input1 = raw_input("Enter numbers to add")
if not input1:
# empty string was entered
break
lon = lon + int(input1)
print lon
Questo programma si bloccherà se l'utente inserisce qualcosa che non può essere convertito in un int, quindi è possibile aggiungere un gestore di eccezioni come questo
print "Hello enter a list of numbers to add up!"
lon = 0
while True:
input1 = raw_input("Enter numbers to add")
if not input1:
# empty string was entered
break
try:
lon = lon + int(input1)
except ValueError:
print "I could not convert that to an int"
print lon
Allo stesso modo nella seconda versione del tuo programma, avresti bisogno di farlo
lon.append(int(input1))
È possibile aggiungere un gestore di eccezioni simile a quello mostrato sopra