如何解决即使不满足“ if”条件,else函数也不会出现?

问题是当兄弟说“不”时,即使我使用“ else”或“ elif”,条件“ if”总是出现,为什么?是否不是如果输入的内容不是“是”或“是”,是否还会出现其他内容?请帮助

好的,这是我的代码

# asking the bro
are_you_happy = input("You feel bad bro? ")

# psicological support loop haha
while are_you_happy.upper() == "YES" or "YEAH":
  print("*give him a hug*")
  better = input("you feel better bro? ")

  # he feel better boys :)
  if better.upper() == "YES" or "YEAH":
    print("i'm happy for you")
    break

  # he don't feel better :(
  elif better.upper() == "NO":
    more_support = input("do you want another hug? ")
    if more_support.upper() == "YES" or "YEAH":
        print("*give him a very huge hug")
        print("i hope you well bro")
        break

enter image description here

解决方法

在Python中,表达式:

something == "YES" or "YEAH"

等效于:

(something == "YES") or ("YEAH")

而且,由于"YEAH"是一个真实值,因此总是是正确的。在这种情况下,使用or right 方法是:

something == "YES" or something == "YEAH"

但您最好使用Pyhtonic:

something in ["YES","YEAH"]

确保更改代码中所有三个问题行。

,

当您使用或声明两个可能的条件时,应将两者与条件进行比较,因此,在您的示例中,您正在使用are_you_happy.upper() == "YES" or "YEAH",并且程序正在检查are_you_happy是否等于YES,并且将返回false并导致您进入else部分,但是,在or或YEAH上没有与任何内容进行比较之后,就好像您有if "YEAH":一样,它将始终返回true,因此,elif和else永远不要运行。将or情况修改为:if are_you_happy.upper() in ["YES","YEAH"]:,依此类推。

,

您提到“是”总是对的

while are_you_happy.upper()!=“”是“或”是“:

将上述内容从==更改为!=


[db:链接]