Python while 循环 - 希望通过 Y/N 选项重复或退出游戏
我做了一个简单的战舰游戏。在游戏结束时,无论是赢了还是输了,我希望用户可以选择再玩一次或者退出。这个代码的目的是获取用户的输入,确保输入是“y”或者“n”,然后如果输入是“n”,就把一个控制初始循环的变量设置为假。但是奇怪的是,当循环再次运行时,不管我怎么做,输入总是被重置为“y”。我用打印语句检查过,确实能正确设置为“n”,但在循环结束后立即打印这个值时,它却变成了“y”。这个循环不管输入是什么都继续运行。我该怎么做才能让“n”正确地退出循环呢?
restart = "y"
while restart[0] not in ("n", "N"):
def play_again():
print ("")
restart = input("Enter y to play again or n to quit: ")
print ("")
try:
x = str(restart)
except ValueError:
print ("Please enter y or n.")
print ("")
play_again()
else:
if str(restart) != "y" and str(restart) != "n":
print ("Please enter y or n.")
print ("")
play_again()
*game*
play_again()
1 个回答
-1
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如说,可能会出现错误信息,或者程序运行得不如预期。这时候,我们就需要去查找解决办法,通常可以在网上找到很多相关的讨论和建议。
StackOverflow是一个非常有用的网站,很多程序员会在这里提问和回答问题。你可以在这里找到别人遇到的类似问题,以及他们是如何解决的。这对于刚开始学习编程的人来说,特别有帮助,因为你可以看到实际的例子和解决方案。
总之,遇到问题时,不要着急,先去查查网上的资源,看看有没有人遇到过类似的情况,或者有没有好的解决方法。
def restart_game():
try:
restart = input("Enter y to play again or n to quit: ")
if restart == "y":
return True
if restart == "n":
return False
raise ValueError
except ValueError:
print ("Please enter y or n.")
return True
while True:
print 'Playing the game ...'
if not restart_game(): break