该方案要求:
,您想重复执行吗?(Y/N)
如果用户输入"Y“或"N",则程序将分别重新启动或退出。
如果用户输入与"Y“或"N”不同的内容,程序应打印"I can't understand you, bye!"
我用我感兴趣的操作定义了一个函数。我从while循环调用这个函数。如果用户输入"Y“,则调用函数;如果用户输入"N”,则打印消息并退出;如果用户输入另一个字符,则打印错误消息。
当我输入"Y“或"N”时,它工作正常,但是如果输入任何其他字符(如"Z“),则调用该函数。
下面是我的密码。谢谢!
import random
import time
def Intro():
print("some text here")
print("select a cavern (1 ó 2)")
def juego():
dragon = random.randint(1,2)
cueva = int(input())
print("bla bla")
time.sleep(2)
print("bla bla bla")
time.sleep(2)
print("bla")
time.sleep(2)
if cueva == dragon:
print("you win")
print("start again? (Y/N)")
print()
else:
print("you lose")
print("start again? (Y/N)")
print()
Intro()
juego()
seguir = input()
print()
while seguir == "Y" or "y":
Intro()
juego()
seguir = input()
print()
if seguir == "N" or "n":
print("Thanks for playing")
break
if seguir != "S" and seguir != "s" and seguir != "N" and seguir != "n":
print("I can't understand you, bye!")
break发布于 2022-01-05 03:50:06
您的while循环只有在用户最初输入Y时才能工作。如果用户没有在while循环之前输入Y,则检查值将变为false,这样while循环就不会运行。不要在while循环之前输入,在开始时将seguir设置为'Y‘,这样您就可以实际地输入它。
发布于 2022-01-05 03:56:37
你应该试着:
if seguir in ["N", "n"]:
print("Thanks for playing")
break
if seguir.lower() == "n":
print("Thanks for playing")
break想帮忙~
参考文献:How to test multiple variables for equality against a single value?
https://stackoverflow.com/questions/70587564
复制相似问题