出于某种原因,无论用户回答什么,我的程序都会再次滚动骰子,并且不打印再见消息。
我将包含以下代码,以便您自己测试(Python 3)
from random import randint
def rollthedice():
print("The number you rolled was: "+ str(randint(1,6)))
rollthedice()
shouldwecontinue = input("Do you wish to roll again? (y or n) ").lower()
if shouldwecontinue == "y" or "yes":
rollthedice()
elif shouldwecontinue == "n" or "no":
print("Goodbye.")
elif shouldwecontinue != type(str):
print("Sorry the program only accepts 'y' or 'n' as a response.")
程序的预期效果应该是,如果用户输入y,它会再次滚动骰子,分别再次启动整个程序。然而,如果用户输入no,那么它应该打印Goodbye消息。
答案 0 :(得分:3)
or
不起作用。现在你的程序正在评估(shouldwecontinue == "y") or "yes"
,并且由于Python将"yes"
解释为真实,那么这个条件总是成功的。最简单的解决方法是将其更改为shouldwecontinue == "y" or shouldwecontinue == "yes"
。当然,其他条件表达式也有类似的变化。