【问题标题】:try except statement error python尝试except语句错误python
【发布时间】:2014-03-20 11:46:57
【问题描述】:
def validnumber():
    notValid=True
    while(notValid==True):
        number=input('Enter number between 0 and 9->')
        if number=='':
            print('Empty input!')
        else:
            try:
                number=int(number)

            except ValueError:
                print('Number not an int value!Try Again!')
            else:
                if number>=0 and number<=9:
                    notvalid=False
    return number

def main():
    myvalidnumber=validnumber()
    print(myvalidnumber)

main()      

大家好。我写了这个程序,只有 1 个问题。

-> 即使我输入 0 到 9 之间的数字,程序也不会结束。谁能解释为什么会这样?

提前致谢:)

【问题讨论】:

  • except 之后的代码中有一个孤儿 else:
  • 其实,elsetry-except 是可以的。
  • 孤儿其他:?所以如果 else 里面有 else 就不行了?
  • 检查第二个else 变量notvalidnotValid

标签: python try-catch except


【解决方案1】:

Python 的变量区分大小写。 notvalidnotValid 不同。所以,当你说

notvalid=False

您正在创建一个新变量。改成

notValid = False

你很好。

【讨论】:

  • 太棒了。你是绝对正确的。我一定要记住这一点,但在这里和那里想念。谢谢!
  • @vishal 使用像 Sublime text 之类的好编辑器。它们会自动完成变量名称。
  • @thefourtheye:我们不要在这里发起编辑大战 :)
  • @JayanthKoushik 这只是一个建议,我不是想推销崇高;)
  • @thefourtheye 一定会调查的。蟒蛇新手。谢谢!
【解决方案2】:

您已经从 thefourtheye 获得了解决方案。仅作记录:在 Python 中实现此类函数的规范方法是使用无限循环和 break 语句或早期的 return(如下例所示)。正确使用continue 语句也可以简化流程:

def validnumber():
    while True:
        number=input('Enter number between 0 and 9->')
        if number=='':
            print('Empty input!')
            continue

        try:
            number=int(number)
        except ValueError:
            print('Number not an int value! Try Again!')
            continue

        if number < 0 or number > 9:
           print('Number not between 0 and 9! Try Again!')
           continue

        return number

【讨论】:

    猜你喜欢
    • 2022-01-12
    • 1970-01-01
    • 2012-12-04
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    相关资源
    最近更新 更多