Ich versuche, eine Übung abzuschließen, die mich auffordert, die TypeError-Ausnahme in Python zu verwenden, um Zeichenfolgen zu berücksichtigen, wenn Ganzzahlen erforderlich sind. Das Beispiel ist einfach, ich frage den Benutzer nach zwei Zahlen und füge sie dann hinzu. Ich möchte einen try-Block verwenden, wenn der Benutzer versehentlich einen String anstelle eines int eingibt. Was ich erhalte, ist wieder ein Zurückverfolgungsvalueerror sagen etwas über Basis von 10.typeerror Ausnahme funktioniert nicht
Hier ist der Code:
print ("Give me two numbers, and I'll add them.")
print ("Enter 'q' to quit.")
while True:
try:
num1 = input("\nEnter first number: ")
if num1 == 'q':
break
except TypeError:
print ("Please enter a number not a letter.")
try:
num2 = input("\nEnter second number: ")
if num2 == 'q':
break
except TypeError:
print ("Please enter a number not a letter.")
sum = int(num1) + int(num2)
print ("The sum of your two numbers is: " + str(sum))
Hier ist die Fehlermeldung:
Traceback (most recent call last):
File "chapt10 - files and exceptions.py", line 212, in <module>
sum = int(num1) + int(num2)
ValueError: invalid literal for int() with base 10: 'd'
Wenn Sie einen Fehler haben * immer * den vollständigen Text des Tracebacks enthalten. Wenn Sie sensible Informationen haben, können Sie * das * maskieren * –
das Konvertieren eines 'str' in ein' int' löst keinen 'TypeError' aus, es löst nur einen' ValueError' aus, wenn der String nicht in einen gültigen int konvertiert werden kann. –