首页 文章

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

提问于
浏览
0

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

我无法弄清楚如何让决定函数告诉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循环 .

2 回答

  • 0

    您可以在函数中进行打印并在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
    

    EDIT 基于澄清的问题(在您的函数内没有打印) . 您的函数可以有多个输出,例如:

    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
    
  • 0

    你可以试试这个:

    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: ")
    

相关问题