如何将break语句从函数发送到while循环?

2024-04-25 20:33:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图反复要求用户输入一个字符串。如果字符串是“bye”,程序应该返回“bye”并终止。你知道吗

我不知道如何让decise函数告诉while循环是时候终止了。你知道吗

def decide(greeting):
    if greeting == "hi":
        return "Hello"
    elif greeting == "bye":
        return "Bye"

x = input("Insert here: ")
while True:
    print(decide(x))
    x = input("Insert here: ")

编辑:评论中的人说在while循环中使用条件来检查返回值。我不能这样做,因为实际上返回值"Bye"存储在局部变量中。这两个函数实际上是在一个类中的,我更希望while循环在条件上保持简短。你知道吗


Tags: 函数字符串用户程序inputreturnhere条件
2条回答

您可以在函数中进行打印,并在while循环中检查其输出:

def decide(greeting):
    if greeting == "bye":
        print("Bye")
        return False  # only break on "bye";
    elif greeting == "hi":
        print("Hello")
    return True

while True:
    x = input("Insert here: ")
    if not decide(x):
        break

根据澄清的问题编辑(在您的职能范围内不打印)。函数可以有多个输出,例如:

def decide(greeting):
    if greeting == "bye":
        return "Bye", False  # return reply and status;
    elif greeting == "hi":
        return "Hello", True
    else:
        return greeting, True  # default case;

while True:
    x = input("Insert here: ")
    reply, status = decide(x)
    print(reply)
    if not status:
        break

你可以试试这个:

def decide(greeting):
    if greeting == "hi":
         return "Hello"
    elif greeting == "bye":
        return "Bye"

x = input("Insert here: ")

while True:
    n = (decide(x))
    print(n)

    if(n == "Bye"):
        break

    x = input("Insert here: ")

相关问题 更多 >