2014-05-12 51 views
0

我在我的程序之一中有這個問題,其中嘗試/除了一個錯誤,以防萬一用戶不小心進入他們不應該的情況下程序更好,不工作。它仍然給我的錯誤,我很難理解爲什麼。以下是錯誤,如果它真的很重要,以我的問題:嘗試/除了沒有例外ValueError

ValueError: invalid literal for int() with base 10: 's' 

下面是代碼,我只是錯誤的片段:

apple_num = int(raw_input(prompt)) 
    try: 
     if apple_num == 3 or apple_num == 2 or apple_num == 1: 
      global apples 
      apples = apples + apple_num 
      time.sleep(0.5) 
      pick() 
     elif apple_num >= 4: 
      print "\nYou can't haul that many apples!" 
       time.sleep(0.5) 
      pick() 
     elif apple_num == 0: 
      main() 
    except ValueError: 
     pick() 

再次,我很爲難,爲什麼我還一如既往地得到錯誤,任何幫助表示讚賞!

+1

並全面回溯沒有提示至於什麼線拋出異常? –

+1

請注意,'ValueError'會警告你有關'int()'的無效文字,這意味着你的問題在於你輸入到'int()'中的值,它是你的'raw_input'。正如下面提到的答案,你需要你的try/Except塊來包含你的'apple_num'變量。 – Signus

回答

4

第一行不在try-except-block中。

3

更改此:

apple_num = int(raw_input(prompt)) 
try: 

要這樣:

try: 
    apple_num = int(raw_input(prompt))