【问题标题】:If and else conditional issues in Python [duplicate]Python中的if和else条件问题[重复]
【发布时间】:2019-11-23 04:06:06
【问题描述】:

我会尽量简短。

我的代码是:

if player_gender != "male" or "Male" or "female" or "Female":

    print("Try again")
else:
    print("Great!")

我不知道为什么,但无论我输入的单词是否正确,它都会不断输出“再试一次”消息:(男性、男性、女性或女性)。

在输入正确的性别类型时,我希望它会传递“重试”消息,因为我使用了“!=”运算符,然后直接跳到“太棒了!”信息。但它总是说“再试一次”

反之亦然

我也试过了

if player_gender == "male" or "Male" or "female" or "Female":
    print("Great!")
else:
    print("Try Again")

在这里我总是会得到“太棒了!”并且永远不要“再试一次”,即使我故意选择了一个不符合性别的词。

我也知道过去我听说过一种方法可以使我的 if 语句更短,而不是:

if player_gender == "male" or "Male" or "female" or "Female":

是否有某种短语或符号同时包含小写和大写拼写?我宁愿在未来的项目中学习这种方式。

是的,我是新手,哈哈 我知道这个问题是多么容易,一旦我意识到我的错误,我肯定会面对手掌。 但是非常感谢任何其他帮助、建议或批评! =)

【问题讨论】:

标签: python if-statement conditional-statements uppercase


【解决方案1】:

如果您在一个 if 语句中检查多个条件,例如:

if player_gender != "male" or "Male" or "female" or "Female":
    Do something

Python 是如何计算的:

if player_gender != "male": Do something
or if "Male": Do something
or if "female": Do something

现在if "Male" 是什么意思?这是检查“Male”是否是一些非空字符串,它是 True。 "Blabla" 被评估为 True,因为它不是 Falsey。它不是空字符串或 0 整数或 False 布尔值或空列表/元组/字典。

检查 if 的正确方法是:

if player_gender != "male" or player_gender != "Male" or player_gender != "female" or player_gender != "Female":
    Do something

更好:

if player_gender not in ["male", "Male", "female", "Female"]:
    Do something

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多