2016-09-20 3 views
-1

Ich schreibe ein einfaches Taschenrechnerprogramm, mit dem ein Benutzer eine Liste von ganzen Zahlen als eine Art hinzufügen kann Eintrag in die Syntax von Python. Ich möchte, dass das Programm dem Benutzer erlaubt, beliebig viele Nummern hinzuzufügen. Mein Fehler ist:Das Hinzufügen von Zahlen in einer Liste gibt TypeError: nicht unterstützte Operandentypen für +: 'int' und 'str'

Traceback (most recent call last): 
    File "Calculator.py", line 17, in <module> 
    addition = sum(inputs) 
TypeError: unsupported operand type(s) for +: 'int' and 'str' 

Mein Code ist:

#declare variables 
inputs = [] 
done = False 

#while loop for inputting numbers 
while done == False: 
    value = raw_input() 
#escape loop if user enters done 
    if value == "Done": 
     print inputs 
     done = True 
    else: 
     inputs.append(value) 

addition = sum(inputs) 
print addition 
+0

'inputs.append (float (Wert))' –

+0

Mögliche Duplikate von [Wie kann ich Eingaben als Ganzzahlen in Python lesen?] (Http://stackoverflow.com/questions/20449427/how-can-i-read -inputs-as-integers-in-python) –

Antwort

1

raw_input gibt Strings zurück, keine Zahlen. sum funktioniert nur mit Zahlen.

Sie können jedes Element in ein int konvertieren, wenn Sie es zur Liste hinzufügen: inputs.append(int(value)). Wenn Sie float statt int verwenden, funktionieren auch nicht ganzzahlige Zahlen. In jedem Fall wird dies zu einem Fehler führen, wenn der Benutzer etwas eingibt, das weder Done noch eine Ganzzahl ist. Sie können try/except verwenden, um damit umzugehen, aber das ist wahrscheinlich außerhalb des Umfangs dieser Frage.

+0

Vielen Dank für das Detail zu dieser Antwort! –

0

Wenn raw_input() mit sind Sie eine Zeichenfolge in value speichern. Konvertieren Sie es in ein int, bevor Sie es an Ihre Liste anhängen, z.

inputs.append(int(value)) 
Verwandte Themen