1

我有一些代码:

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' 外循环

我怎样才能更好地编写它以使其工作?

4

2 回答 2

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')
于 2013-08-12T23:24:25.833 回答
1

替换breakreturnbreak只能在循环内使用,而return在函数的任何地方都可以使用。最终代码如下所示:

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
于 2013-08-12T23:17:51.183 回答