2016-04-05 20 views
0

Python'da bir int yerine bir char/string girerken, istisnayı yakalayan bir deneme istisnası uygulamaya çalışıyorum.Python ValueError istisnası - Name "a" tanımlı değil error

Ancak dönen, aşağıdaki hatayı harfi 'a' programı çöker girişi yaparken: Bu benim kod

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

geçerli:

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

Python 2.x'te bulunduğunuzdan (print nedeniyle) olduğunu varsayarak, 'input' yerine 'raw_input' kullanmayı deneyin ve etiketlerinize [tag: python-3.x] eklemeyin. . – Lafexlos

cevap

1

Bir ValueError yakalamaya çalışıyoruz ama işlev bunun yerine bir NameError yükseltiyor. Yani onu yakalamıyorsun. Doküman girişinden() verilen girişi yorumlar:

+2

Aslında, 'input' kullanmak problemdir. 'input' python 2.x'te' eval' olarak davranır, bu yüzden 'raw_input' olarak değiştirilmelidir. Char/string üzerinde int dizgesi, OP'nin başarmaya çalıştığı bir ValueError değerini yükseltir. – Lafexlos

+0

Haklısınız. Sonra, en az iki problem olduğunu söyleyebilirsin. Yazarın amacı 'Python'da bir deneme istisnası uygulamak'. Bu yüzden istisnai yakalama problemine baktım. –