为什么我不能摆脱循环?

时间:2017-04-29 16:42:43

标签: python

Python初学者。对不起,如果这是一个基本的python概念

over = False

def run():
    user_input = input("Over? (y/n): ")
    if(user_input == 'y'):
        over = True

while not over:
    run()

虽然输入为“y”,但循环不会停止。

3 个答案:

答案 0 :(得分:1)

您需要编写global over,因此函数run()将更改全局变量

over = False

def run():
    global over
    user_input = input("Over? (y/n): ")
    if(user_input == 'y'):
        over = True

while not over:
    run()

答案 1 :(得分:1)

你不应该在这里使用全局变量。返回一个布尔值,并调用run作为循环的条件。 (此时,您可能还想重新考虑名称run。)

def run():
    user_input = input("Over? (y/n)")
    return user_input == 'y'

while run():
    ...

答案 2 :(得分:0)

您正在函数mouseover中设置 local 变量over,但您没有将其传递到调用它的范围。而是将值返回到调用范围,如下所示:

run()