使用字符串计数时出现 UnboundLocalError 错误

Getting UnboundLocalError error while using string counting

我得到这个错误 UnboundLocalError: local variable 'total' referenced before assignment 而 运行 下面的代码。 首先很抱歉问了这个愚蠢的问题,我知道这很简单,但我似乎不太明白,所以想问问你们。

total = 0
def count(string, letter):
    for x in string:
        if x == letter:
            total +=1
    print(y)

据我所知,total 已在函数之前分配,因此它应该是全局变量并且可以在脚本中的任何位置使用。 当我使用


def count(string, letter):
    total = 0
    for x in string:
        if x == letter:
            total +=1
    print(y)

当我 运行 这个时,在函数内部使用 total 赋值,它工作正常。但是我想知道为什么我首先会得到上面的错误。 请解释一下。我正在通过 pdf 和你们的帮助自己学习它。

提前致谢

是的,"total" 变量必须是 declared/defined 在 count(string, letter) 函数中。在 Python 中,函数不能像 JavaScript 中的函数那样访问 outer/global 变量,除了像 count(string, letter, total) 那样将外部变量作为参数传递给该函数,但以前我们需要用这三个参数来定义函数。