繁体   English   中英

尝试除了语句错误python

[英]try except statement error python

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()      

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

->即使我输入0到9之间的数字,程序也不会结束。任何人都可以解释为什么会这样吗?

提前致谢 :)

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

notvalid=False

您正在创建一个新变量。 只需将其更改为

notValid = False

而且你还好

您已经从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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM