/ / Изключение от Python ValueError - Име "a" не е дефинирана грешка [дубликат] - python, python-2.7, python-3.x, try-catch

Изключение с Python ValueError - името "a" не е дефинирано за грешка [duplicate] - python, python-2.7, python-3.x, try-catch

Опитвам се да приложим изключение от опита в 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 вместо.