如果输入不是1或2,那么如何重新输入此输入?
status = eval(input("Are they single(1) or married(2)? \n"))
答案 0 :(得分:3)
使用循环:
while True:
status = input("Are they single(1) or married(2)? \n")
if status in ('1', '2'):
break
顺便说一句,不要使用eval
。它可以评估任意表达。如果要将输入字符串转换为int,请改用int
。
答案 1 :(得分:0)
@falsetru,已经用我喜欢的方式回答了。以下是您可能在其他地方看到的几种替代方案
status = input("Are they single(1) or married(2)? \n")
while status not in ('1', '2'):
status = input("Are they single(1) or married(2)? \n")
由于提示重复
,这是不可取的status = -1 # or 0 or None or some other invalid value
while status not in ('1', '2'):
status = input("Are they single(1) or married(2)? \n")
在我看来,这只是丑陋,但有些人不喜欢使用break
我更喜欢@fattru的版本的一个原因是,当您想要计算/限制重试次数时,很容易转换为for
循环。