Python中是否存在条件问题

时间:2019-11-23 04:06:06

标签: python if-statement conditional-statements uppercase

我想简短点

我的代码是:

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":

是否存在某种会同时包含小写和大写拼写的短语或符号?我宁愿为以后的项目学习这种方式。

是的,我是新手,哈哈 我知道这个问题有多容易,一旦我意识到自己的错误,我肯定会面无表情。 但是,已完全认可,但没有其他任何帮助,建议或批评!! =)

1 个答案:

答案 0 :(得分:0)

如果您在一个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"是什么意思?这是在检查“男”是否是一些非空字符串,即True。因为“ Blabla”不是Falsey,所以被评估为True。它不是空字符串,0整数,布尔值False或列表/元组/字典为空。

检查是否为正确的方法:

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
相关问题