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ď č. 1Snaží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.