我的代码应该为用户输入一个必须为正整数的'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循环仍然是真的?
答案 0 :(得分:1)
如果n不是退出该功能的数字,您似乎就会返回。
答案 1 :(得分:1)
return
语句结束了该功能。
所以当你执行return None
时,它不能在循环中重复,因为它已经不在了。
您可能希望使用continue
代替return None
答案 2 :(得分:0)
def input_n():
"""obtains n value from user"""
print("Input number of terms n (must be > 0):")
while True:
n = input("> ")
if not n.isdigit():
print("Not a usable value - must be a number!")
continue
n = int(n)
if n < 1:
print("Not a usable value - too low!")
continue
return n
答案 3 :(得分:0)
试试这个
def input_n():
print("Input number of terms n (must be > 0):")
while True:
n = raw_input("> ")
if not n.isdigit() or n < 1:
print("Not a usuable n value")
continue
else:
return n