我认为我理解全局和局部变量,但显然不是。类似的问题似乎取决于改变一个全局变量,但是我的正在被改变,它不应该被改变。
我有一个包含一些数字的列表,我想使用这些数字创建一个新列表,而不更改初始列表。
deductions = 3
gross = [5,5,5,5]
net = net_result(gross, deductions)
def net_result(G, D):
Nets = G
Deduct = D
for each in range(0,4):
if Deduct > Nets[each]:
Deduct = Deduct - Nets[each]
Nets[each] = 0
else:
Nets[each] = Nets[each] - Deduct
Deduct = 0
return (Nets, Deduct)
在上面的代码中,net的输出是正确的,但是big也同时减少了。导致毛和净等于[2,5,5,5],当它应该是[5,5,5,5]和[[2,5,5,5],0]
这对我来说似乎不对,但我无法解决我没有得到的问题。否则我必须重置Gross变量或我不能再次调用它们