Опитвам се да приложим изключение от опита в Python, което при въвеждане на char / string вместо int, улавя изключението.
Въпреки това, когато въвеждате буквата "а", програмата се срива, връщайки следната грешка:
num = input("Enter integer number: ") File "<string>", line 1, in
<module> NameError: name "a" is not defined
Това е моят код:
if __name__ == "__main__": #main function
num = input("Enter integer number: ")
try:
num = int(num)
except ValueError:
print "Invalid input."
Отговори:
1 за отговор № 1Вие се опитвате да хванете ValueError
но функцията се повдига a NameError
вместо. Така че няма да го хванете.
if __name__ == "__main__": #main function
num = input("Enter integer number: ")
try:
num = int(num)
except Exception as e:
print "Invalid input: {}".format(e.message)
1 за отговор № 2
от входа за документация () интерпретира дадения вход.
https://docs.python.org/2/library/functions.html?highlight=input#input
така че ако дадете вход като "А" ще го тълкува като низ и ще продължи. тъй като вие давате стойността като а, тя очаква име на променлива а.
ако директно искате да използвате потребителския вход, както се предлага в коментарите от @Lafexlos raw_input вместо.