首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是关于局部变量和全局变量的问题吗?我不知道什么不管用。(基本蟒蛇)

这是关于局部变量和全局变量的问题吗?我不知道什么不管用。(基本蟒蛇)
EN

Stack Overflow用户
提问于 2022-01-06 08:08:19
回答 1查看 47关注 0票数 -1

这个代码不起作用。

错误说:

UnboundLocalError:赋值前引用的局部变量“on”

代码语言:javascript
复制
arr = []
for i in range(4):
    arr.append([0 for t in range(4)])

on=1

num_r = 0
def go_r(d):
    for i in range(d):
        arr[num_r][i+num_r] = on
        on +=1
    return arr

print(go_r(4))

但是这个代码(↓)可以工作。

代码语言:javascript
复制
arr = []
for i in range(4):
    arr.append([0 for t in range(4)])

on=1

num_r = 0
def go_r(d):
    for i in range(d):
        arr[num_r][i+num_r] = on
    return arr

print(go_r(4))

两个代码的不同之处在于上面的代码包括"on +=1“。

我希望我的代码打印[1,2,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0]。

所以我在上面的代码中插入了"on +=1“。

我该怎么办?我不知道上面的密码有什么问题。

EN

回答 1

Stack Overflow用户

发布于 2022-01-06 08:21:33

代码语言:javascript
复制
def go_r(d):
    for i in range(d):
        arr[num_r][i+num_r] = on
        on +=1
    return arr

在上述情况下,on变量是go_r函数中的局部变量。

在函数中添加global on以使用全局变量on

代码语言:javascript
复制
def go_r(d):
    global on
    for i in range(d):
        arr[num_r][i+num_r] = on
        on +=1
    return arr
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70604149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档