我已经学习Python大约5天了,而且我没有任何编程经验,所以如果这太基础了,就表示歉意。我检查了其他一些类似的问题,但是问题不一样。
我正在为我正在编写的程序定义一些输入检查功能,我的想法是依靠while循环和布尔条件使它们工作,但是我发现无论使用哪种循环都不会结束输入有效。
这是我写过的最简单的书:
def is_num(num):
try:
num = float(num)
num_check = True
except:
print("Incorrect value. Please, enter a number.")
num_check = False
while not num_check:
user_num = input("Enter a number: ")
is_num(user_num)
print("Valid number.")
如果我输入的不是数字,我确实会收到错误消息,但是如果我输入数字,我只会一遍又一遍地得到输入提示。
我认为问题可能来自num_check
,而仅在函数内部定义,所以我尝试了此版本,但实际上并没有改变:
def is_num(num, num_check):
try:
num = float(num)
num_check = True
except:
print("Incorrect value. Please, enter a number.")
user_num_check = False
while not user_num_check:
user_num = input("Enter a number: ")
is_num(user_num, user_num_check)
print("Valid number.")
要使其正常工作,我应该更改什么?谢谢!
答案 0 :(得分:0)
通常,您需要一个条件来打破while循环。只需等待True即可继续运行循环。您什么时候想退出循环?
可能是一个简单的代码,这样会有所帮助
def is_num(num, num_check):
try:
num = float(num)
num_check = True
except:
print("Incorrect value. Please, enter a number.")
user_num_check = False
while not user_num_check:
user_num = input("Enter a number: ")
if not is_num(user_num, user_num_check):
break
print("Valid number.")
答案 1 :(得分:0)
答案正确时,您需要退出循环。
为此,您可以使用else
语句。
因此,这就是您的代码:
def is_num(num):
try:
num = float(num)
num_check = True
except:
print("Incorrect value. Please, enter a number.")
else:
print("Valid number.")
num_check = False
while not num_check:
user_num = input("Enter a number: ")
is_num(user_num)
希望这对您的问题有所帮助!