import random
die1=''
die2=''
throw=''
player=''
play=(input("Would you like to play?"))
if play == "Yes" or "yes":
die1 = random.randint(1,6)
die2 = random.randint(1, 6)
throw = (die1+die2)
print(throw)
else:
print("Thanks anyways!")
我一直盯着我的代码大约一个小时,我无法弄清楚我做错了什么。第9行总是出现'真实'无论条件实际上是否为真。有人可以发现我做错了吗?
答案 0 :(得分:3)
您的病情按以下方式评估。
(play == "Yes") or bool("yes")
你希望它是
play == "Yes" or play == "yes"
否则,如果play != "Yes"
,则"yes"
的真实性得到评估,而非空字符串则是真实的。
涵盖所有下组和大写组合的更一般情况是使用它。
play.lower() == "yes"
答案 1 :(得分:0)
“是”被视为True。你需要做的是如果玩==“是”或玩==“是”
答案 2 :(得分:0)
这就是python如何解释play == 'Yes' or 'yes'
所以当您在终端中实际运行它时,您会看到输出为yes
而不是True或False,就像您执行or
时一样。在你的情况下可能是假的条件,但它给出yes
非空字符串,在python中被视为True值。
所以要解决这个问题,请加上@ Oiver的回答
您可以将行更改为
if play == 'Yes' or play == 'yes':
if play in ['Yes', 'yes']:
这应该可以解决问题。