【发布时间】:2018-06-13 07:52:38
【问题描述】:
我有 2 个输入要输入,如果用户输入不正确的输入,我想遍历它们。我所做的是我设置为 True 然后尝试和 except 然后继续。但是,如果输入错误,则在第二个输入的情况下,整个循环将从头开始重复 - 即从第一个输入开始。我希望从第二个输入重复它。我能想到的唯一一件事是在第一次正确输入后在代码中添加中断,然后为第二次输入设置另一个 while True。有什么更好的方法来做到这一点?
while True:
try:
a = int(input("Type positive integer: "))
except ValueError:
print(" Enter a positive NUMBER!")
continue
if a <= 0:
print("Input can't be 0 or negative!")
continue
else:
try:
b = int(input("Type second positive integer: "))
except ValueError:
print(" Enter a positive NUMBER!")
continue
if b <= 0:
print("Input can't be 0 or negative!")
continue
else:
break
【问题讨论】:
-
没有比这更好的方法了。
-
您不需要第一个
else:子句,因为您正在跳出循环。删除else:并取消缩进其余部分会使其更具可读性。 -
您可以将它们保存在一个元组中,对两个变量使用相同的循环,一旦正确输入第一个数字,将元组索引从 0 增加到 1。
-
您可以将 while 循环放在 for 循环中。这将删除相当多的重复代码。
-
Paul Panzer 能否举一个 for 循环的例子。具体来说,该循环中的迭代器是什么?
标签: python python-3.x