[英]Python - Repeating code with a while loop
所以这是我的问题。 我有一大堆输入代码,以防输入错误。 到目前为止,这就是我所拥有的(请注意,这只是一个示例代码,我在打印和输入中拥有的实际值是不同的:
input_var_1 = input("select input (1, 2 or 3)")
if input_var_1 == ("1"):
print ("you selected 1")
elif input_var_1 == ("2")
print ("you selected 2")
elif input_var_1 == ("3")
print (you selected 3")
else:
print ("please choose valid option")
我要在ELSE之后添加什么,以便第一个IF和最后一个ELIF之间的所有代码都重复执行直到输入有效为止? 我现在所得到的只是简单地重复执行3次代码,但是这样做的问题是它仅重复输入请求3次,而且太大而又不切实际。
谢谢您的帮助!
正如umutto所暗示的,您可以使用while
循环。 但是,您可以在结尾处有一个中断,而不是对每个有效输入都使用break
,您可以使用continue
保留在循环中来跳过不正确的输入。 如下
while True:
input_var_1 = input("select input (1, 2 or 3): ")
if input_var_1 == ("1"):
print ("you selected 1")
elif input_var_1 == ("2"):
print ("you selected 2")
elif input_var_1 == ("3"):
print ("you selected 3")
else:
print ("please choose valid option")
continue
break
我还清理了代码中的其他一些语法错误。 经过测试。
一个有效的代码将是
input_values=['1','2','3']
while True:
input_var_1 = input("select input (1, 2 or 3): ")
if input_var_1 in input_values:
print ("your selected input is "+input_var_1)
break
else:
print ("Choose valid option")
continue
我建议使用此答案,因为我相信python可以用简约的代码完成工作。
像mani的解决方案一样,在这种情况下,除了continue
的使用是多余的。
另外,在这里我允许将int()的float()或string()的输入标准化为int()
while 1:
input_var_1 = input("select input (1, 2, or 3): ")
if input_var_1 in ('1','2','3',1,2,3):
input_var_1 = int(input_var_1)
print 'you selected %s' % input_var_1
break
else:
print ("please choose valid option")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.