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()
嘿伙计们。我写了这个程序,只有一个问题。
- &GT;即使我输入0到9之间的数字,程序也不会结束。有人能解释为什么会发生这种情况吗?。
提前致谢:)
答案 0 :(得分:2)
Python的变量区分大小写。 notvalid
与notValid
不同。所以,当你说
notvalid=False
您正在创建一个新变量。只需将其更改为
即可notValid = False
你没事。
答案 1 :(得分:0)
你已经从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