2017-06-20 100 views
0

我正在做一个Python的健身计划,我需要收集有关用户的信息。 除了收集性别时,其余代码都可以正常工作。Python循环 - 继续询问,直到输入正确的答案

如果未输入答案M,F,m或f,我希望代码重复该问题。然而,当我运行这段代码时,即使输入M,F,m或f,它也会显示“请输入M代表男性或F代表女性”。

gender = input("What is your gender? M/F: ") 
while gender != "M" or "F" or "m" or "f": 
    print("Please enter M for Male or F for Female.") 
    gender = input("What is your gender? M/F: ") 

我试图与is not没有成功取代!=

+0

因为'性别= “M” 或 “F” 或 “M” 或 “F”'是*始终*'TRUE' –

回答

2

这是正确的做法:

while gender not in ("M","F","m","f"): 

当您检查or "m",“m”是真实的,因为它有字符串值,因此它永远是正确的。

你也可以做到!

while gender != "M" or gender != "F" or gender != "m" or gender != "f":