不正确插入Python 3.3后重新输入输入?

时间:2013-11-13 03:55:47

标签: python input python-3.3

如果输入不是1或2,那么如何重新输入此输入?

status = eval(input("Are they single(1) or married(2)? \n"))

2 个答案:

答案 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循环。