在函数内分配变量



这个问题可能很常见,每隔一分钟就会被问一次,但我试图寻找答案,但找不到。很可能我无法很好地表达这个问题。

无论如何,我正在开发一个小型文本游戏,它有变量,为简单起见,我们说water = 100.我有一个函数是main循环。假设代码如下所示:

water = 100
def main():
    while True:
        water -= 5
        print(water)
main()

当然,当我运行这个程序时,它告诉我变量在赋值之前被引用了。但是如果我在函数内制作变量,那么在循环的每次迭代中,它会将变量重置为原始的 100。

那么我该如何做到这一点呢?谢谢!

使用关键字 global 。在你的代码中,在循环之前在函数global water中声明,然后你的代码就可以正常工作。

如果要在不使用全局变量的情况下编写代码,也可以编写代码以使用nonlocal变量。但是,这可能会更加令人困惑,不适合您要做的事情。PatNowak的回答鼓励您阅读有关global关键字的信息。使用以下示例作为鼓励,也可以阅读不完全是局部或全局的变量。

def create_functions():
    water = 100
    def first_function():
        nonlocal water
        for _ in range(10):
            water -= 5
            print(water)
    def second_function(amount):
        nonlocal water
        water += amount
    return first_function, second_function
main, add_water = create_functions()
main()
add_water(25)
main()

如果我在函数内创建变量,那么在循环的每次迭代中,它将变量重置为原始 100。

???

def main():
    water = 100
    while water > 0:
        water -= 5
        print(water)
main()

输出:

95
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
0

查看它在线工作

相关内容

  • 没有找到相关文章

最新更新