中断外部循环Python函数其他选项

2024-10-01 17:29:33 发布

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

我有一些代码:

def playAgain1():
    print("Would you like to keep boxing or quit while you are ahead? (y/n)")
    playAgain = input().lower()
    if(playAgain.startswith('y') == False):
        print("Whatever you chicken.")
        break

如果playAgain()不以y开头,我希望它中断循环。每当我尝试时,我都会得到一个错误:

'break' outside loop

我怎么才能写得更好才能让它生效呢?在


Tags: orto代码youdefquitlikeprint
2条回答

正如马特·布莱恩特的回答所说,你不能突破一个循环,而只能从函数中返回。我要补充的是,您可能需要从函数中返回一个值,以便主程序循环知道是返回开始还是退出:

def main():
    while True:
        # main game code goes here
        if not playAgain():
            break

def playAgain():
    print("Would you like to keep boxing or quit while you are ahead? (y/n)")
    response = input().lower()
    return response.startswith('y')

break替换为returnbreak只能在循环内使用,而{}可以在函数中的任何位置工作。最终代码如下:

def playAgain1():
    print("Would you like to keep boxing or quit while you are ahead? (y/n)")
    playAgain = input().lower()
    if not playAgain.startswith('y'):
        print("Whatever you chicken.")
        return
    else:
        # do whatever you do when they say yes

相关问题 更多 >

    热门问题