首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3:无法退出"while“循环

Python 3:无法退出"while“循环
EN

Stack Overflow用户
提问于 2022-01-05 03:40:02
回答 2查看 66关注 0票数 0

该方案要求:

,您想重复执行吗?(Y/N)

如果用户输入"Y“或"N",则程序将分别重新启动或退出。

如果用户输入与"Y“或"N”不同的内容,程序应打印"I can't understand you, bye!"

我用我感兴趣的操作定义了一个函数。我从while循环调用这个函数。如果用户输入"Y“,则调用函数;如果用户输入"N”,则打印消息并退出;如果用户输入另一个字符,则打印错误消息。

当我输入"Y“或"N”时,它工作正常,但是如果输入任何其他字符(如"Z“),则调用该函数。

下面是我的密码。谢谢!

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2022-01-05 03:50:06

您的while循环只有在用户最初输入Y时才能工作。如果用户没有在while循环之前输入Y,则检查值将变为false,这样while循环就不会运行。不要在while循环之前输入,在开始时将seguir设置为'Y‘,这样您就可以实际地输入它。

票数 0
EN

Stack Overflow用户

发布于 2022-01-05 03:56:37

你应该试着:

代码语言:javascript
复制
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?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70587564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档