ValueError: invalid literal for int() with base 10 für nicht-Ziffern

Ich versuche, erstellen Sie ein einfaches Programm, das liest einen string aus 4 Zeichen, macht Sie sicher, es ist ja 4-stellig, stellt sicher, dass es keine nicht-Ziffern, dann trennt die ersten beiden Ziffern der letzten zwei und addiert Sie. Ich kann damit das alles funktioniert, aber ich habe immer noch diesen Fehler:

ValueError: invalid literal for int() with base 10:

Passiert das nur, wenn ich versuche einen string wie '456f'.

Was kann ich ändern um dies zu beheben?

Code:

    s = input('please type a 4-digit integer \n')
valid = True
for c in s:
    if len(s)!= 4:
        valid = False
    if not c.isdigit():
        print (c, 'is not a valid input')
number = int(s)
firstOne = number // 100
secondOne = number % 100
sum = firstOne + secondOne
x = '/'
if valid == True:
    print('your integer is ' + str(number), x, 'first two digits are ' + str(firstOne), x, 'second two digits are ' + str(secondOne), x, 'sum of two new numbers is ' + str(sum))
else:
    print(len(s), 'is an invalid amount of digits')
InformationsquelleAutor dustdustdust | 2012-02-16
Schreibe einen Kommentar