如何解决即使不满足“ 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
解决方法
在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:链接]
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。