The problem is when the bro says “no” the condition “if” always appears even if i use “else” or “elif”, why? Isn’t it supposed that if the input is something other than yes or yeah, is else what appears? pls help
ok here is my code:
# 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
Advertisement
Answer
In Python, the expression:
something == "YES" or "YEAH"
is equivalent to:
(something == "YES") or ("YEAH")
And, since "YEAH" is a truthy value, this will always be true. The right way to use or in this case is with:
something == "YES" or something == "YEAH"
but you would be better off with the more Pyhtonic:
something in ["YES", "YEAH"]
Make sure you change all three of the problem lines in your code.