这个代码不起作用。
错误说:
UnboundLocalError:赋值前引用的局部变量“on”
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))但是这个代码(↓)可以工作。
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“。
我该怎么办?我不知道上面的密码有什么问题。
发布于 2022-01-06 08:21:33
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。
def go_r(d):
global on
for i in range(d):
arr[num_r][i+num_r] = on
on +=1
return arrhttps://stackoverflow.com/questions/70604149
复制相似问题