我的python代码有一些错误,在try除了循环。如果您输入的输入不是是或否,它会首先打印“是”回答输出,然后一旦您回答了问题,如果您不输入是或否,它会显示输出。这是代码:
playAgain = None
while playAgain != "Yes" or "No" or "yes" or "no" or "y" or "n":
try:
playAgain = str(input("Do you want to play again? Enter Yes or No: "))
if playAgain == "Yes" or "y" or "yes":
displayIntro()
elif playAgain == "No" or "no" or "n":
print("Oh, well. The magic 8 ball will see you next time...")
sys.exit()
except:
print("That wasn't yes or no, idiot. The magic 8 ball will not give a fortune to such an imbocile.")
请帮忙,谢谢!
playAgain != "Yes" or "No" or "yes" or "no" or "y" or "n"
不是正确的方法。
当你说play的时候!="Yes"
然后您需要对剩余的表达式执行相同的操作。因此,一个有效的方法来做你打算做的事情是:
playAgain != "Yes" or playAgain != "No" or playAgain != "yes" or playAgain != "no" or playAgain != "y" or playAgain != "n"
但这太难看了,太长了。
相反,使用
playAgain not in ["Yes", "No", "yes", "no", "y", "n"]
在Python中,我们有一些方便的方法来处理此类问题。您可以使用中的运算符检查可能值列表中是否存在(或不存在)有问题的字符串。读起来也很不错:“如果playreach(is)不在[这个值列表]”。
您甚至可以操纵输入,以便更容易使用。也就是说,您降低了所有字母,并且不检查区分大小写的输入(如果您真的不关心区分大小写的输入;您真的关心是
Yes
还是Yes
?):
playAgain.lower() not in ["yes", "y"]
像这样的事情应该做:
while True:
playAgain = str(input("Do you want to play again? Enter Yes or No: "))
if playAgain.lower() in ["yes", "y"]:
# do something with your yes input. Consider `break` out of the endless loop.
elif playAgain.lower() in ["no", "n"]:
# do something with your no input. Consider `break` out of the endless loop.
else:
print("That wasn't yes or no.")
注意,上面的循环是无止境的。您需要根据您的程序逻辑进行中断。也就是说,当你需要打破无休止的循环时,你需要在某处放置一个
break
语句。
我的方向是编写一个代码(在java中),找到1,000到9,999(任何4位数字)之间的代码,满足四个条件: 这四个数字都不一样 千位数字是十位数字的3倍 这个数字是奇数 数字之和是27 这就是我目前所拥有的。我的部分出现错误: 是出现的错误。 在我的脑海里,
我正在看freeCodeCamp的一个关于flappy bird游戏的教程https://www.youtube.com/watch?v=pufko5eg8nc 但我正在使用一个类来学习更多关于它的知识。 问题是,图像没有加载到draw()函数的循环中。如果我将drawImage()放在循环之外(像其他图像一样),那么它们就可以工作。 控制台中没有错误,for循环中的两个图像没有出现,我只是不明白
我目前正在学习UdemyJava课程,并正在练习我迄今为止学到的东西。 我有以下简单的程序,我计划使用它来让用户输入他的名字。 我想让程序在用户输入空白名称时重复错误消息,而不是从头开始重新启动整个程序。 例如,当用户输入一个空白的名字时,我希望程序继续重复“请输入至少1个字符的名字”,当用户输入一个空白的姓氏时,程序继续重复“请输入至少1个字符的姓氏”,直到用户输入一个有效的名字。 然而,当前当
你好,我试图跳过一些错误消息并通过将空csv写入我的工作d目录来继续循环。 问题是没有is。我知道的错误()?我不知道如何实现try()包装器来获得所需的结果。
当我尝试使用命令节点文件时。js terminal show此行语法错误{导出默认函数}语法错误:意外的令牌导出 这是我的代码任何帮助,如果我删除导出我有相同的错误与默认关键字
假设我有一个文件: 我想根据日期将行分隔为不同的文件。我制作了以下脚本: 当我执行时,我得到以下内容: 如果我在没有cat...行的情况下尝试,脚本会打印所有的回显命令,如果我在命令行上只尝试cat|grep命令,它就可以工作。 你知道为什么它会这样吗?