【问题标题】:How can I use the while loop correctly if there is two possible answer is acceptable? [duplicate]如果有两个可能的答案是可以接受的,我该如何正确使用 while 循环? [复制]
【发布时间】:2019-12-14 13:47:01
【问题描述】:

我想请用户输入性别。 如果用户的答案不是男性或女性,我想一次又一次地循环问题,直到用户输入男性或女性

这是我写的:

while not (mf):
    gender=input("Next, the gender of the character is (male/female):")
    if gender == ("male") or ("female"):
        mf=True
    else:
        print("Enter the correct gender type.")

如果我在询问性别时输入女性,则视为错误,但女性和男性都应该是正确的答案。

【问题讨论】:

    标签: python loops while-loop


    【解决方案1】:

    可以使用while True,常用的:

    while True:
        gender = input("Next, the gender of the character is (male/female):")
        if gender in ["male", "female"]:
            break
        print("Enter the correct gender type.")
    
    print(gender)
    

    【讨论】:

    • 谢谢。一个明确的答案,对我有很大帮助。
    【解决方案2】:

    gender == ("male") or ("female") 的说法总是正确的

    改成: gender in ['male', 'famale']

    说明:

    在做gender == ("male") or ("female"),这里有两种表达方式,一种是 gender == ("male") 是正确的,但是在它之后是 or 关键字,它也使下一个语句成为一个语句,所以下一个语句是 ('female') 这是一个真正的值,所以它永远是真的

    【讨论】:

    • 好的,我明白了。非常感谢回答,试了很久。
    • @KITO 没问题 :) 如果您认为这是正确的答案,您可以将其标记为正确(也请检查 nicolas 的答案,它并不能真正解释错误,但它是一个好习惯)
    【解决方案3】:

    我会建议下面的代码避免使用新变量来存储输入是否正确,您可以使用您已经在使用的gender 变量直接检查。

    gender = "" # initialize the variable
    while not (gender in ['male', 'famale']):
      gender = input("Next, the gender of the character is (male/female):")
      if not gender in ['male', 'famale']:
        print("Enter the correct gender type.")
    

    【讨论】:

      猜你喜欢
      • 2019-06-30
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多