【发布时间】:2016-02-18 20:00:44
【问题描述】:
我的代码应该接受用户输入的值“n”,该值必须是一个正整数,如果它不是正数或者它是一个字符串而不是一个整数,那么它应该重复输入过程。这是我的代码:
def input_n():
"""obtains n value from user"""
while True:
print("Input number of terms n (must be > 0):")
n = input("> ")
if not n.isdigit():
print("Not a usuable n value")
return None
continue
else:
n = int(n)
if n < 1:
print("Not a usuable n value")
return None
else:
return n
我已经尝试过在第一个 if 循环结束时使用和不使用 continue 语句。如果输入负数或字符串,它似乎永远不会重复。它转到我的代码的下一部分(未显示或未显示)。有谁知道为什么它没有重复,因为 while 循环仍然是 True?
【问题讨论】:
-
当你做
return None时,它已经回到了调用函数。你需要删除它 -
无论代码中的
ifs 引导您到哪里,总会有一个return。此外,contiue永远无法执行,因为之前有一个return。 -
@kart 谢谢!它起作用了:)我现在看到了,因为条件是 True 我不需要返回 None 因为它会开始 while 循环!
标签: python python-3.x