2014-05-12 31 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))