debugging 我已经附上了我的代码,请您审阅并告诉我错误的原因,解释一下?[duplicate]

bxpogfeg  于 2022-11-14  发布在  其他
关注(0)|答案(3)|浏览(137)

此问题在此处已有答案

UnboundLocalError on local variable when reassigned after first use(13个答案)
Using global variables in a function(24个答案)
1年前关闭。

我的代码

x = 10
def fun():
    x = x + 2
    print(x)
fun()
print(x)

和输出错误

未绑定本地错误:赋值前引用了局部变量“x”

3zwtqj6y

3zwtqj6y1#

你必须在def fun()中传递全局变量x,因为fun()中没有赋值名为x的变量。代码如下:

x = 10
def fun():
    global x
    x = x + 2
    print(x)
fun()
print(x)

输出

>>> 12
>>> 12


您也可以简单地传递一个参数,但这会使x的值有所不同:

x = 10
def fun(x):
    x = x + 2
    print(x)
fun(x)
print(x)

输出

>>> 12
>>> 10
hgqdbh6s

hgqdbh6s2#

你要在函数fun()中修改的变量x是全局作用域,因此你不能在函数中这样访问它。但是,你可以用途:

x = 10
def fun():
    global x
    x = x + 2
    print(x)
fun()
print(x)

追加global x将允许函数修改全局范围内的变量x

gzjq41n4

gzjq41n43#

你没有给予x作为函数的参数,这就是原因。

x = 10
def fun(x):
    x = x + 2
    print(x)
fun()
print(x)

相关问题