/ Výnimka / Python ValueError - Názov „a“ nie je definovaná chyba [duplikát] - python, python-2.7, python-3.x, try-catch

Python ValueError výnimka - názov "a" nie je definovaný chyba [duplicate] - python, python-2.7, python-3.x, try-catch

Snažím sa implementovať v Pythone výnimku try, ktorá pri zadávaní znaku char / string namiesto int zachytí výnimku.

Pri zadávaní písmena „a“ však program zlyhá a vracia sa nasledujúca chyba:

num = input("Enter integer number: ")   File "<string>", line 1, in
<module> NameError: name "a" is not defined

Toto je môj kód:

if __name__ == "__main__":   #main function
num = input("Enter integer number: ")
try:
num = int(num)
except ValueError:
print "Invalid input."

odpovede:

1 pre odpoveď č. 1

Snažíte sa chytiť ValueError ale funkcia zvyšuje a NameError miesto. Takže to nechytíte. Skúste:

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 pre odpoveď č. 2

zo vstupnej dokumentácie () interpretuje daný vstup.

https://docs.python.org/2/library/functions.html?highlight=input#input

takže ak zadáte vstup ako "A" interpretoval by to ako reťazec a pokračoval. pretože dáte hodnotu ako a, očakáva premennú s názvom a.

ak chcete priamo použiť užívateľský vstup, ako sa navrhuje v komentároch od používateľa @Lafexlos raw_input miesto.