sum=0
1def myadd(x,y):
global sum
sum+=x+y
return x+y
print(myadd(1,2))#3
print(myadd(100,200))#300
print(sum=',sum)#303
请解释为什么最后sum打印出来是303
你是一个好学的人,但是需要知道 global的含义
global表示全局的意思,也就是说 myadd 里面的sum和外面的 sum是同一个对象,当 方法里面的sum改变时,外面的sum也同时改变
接下来分析:
第一个 调用myadd(1, 2) 时, sum 在方法内做了一次加法 sum += x + y, 因此sum此时等于 3(由于global定义,外部的sum也变成了 3)
第二个 调用myadd(100, 200) 时, sum 在方法内又做了一次加法 sum += x + y, 也就是 3 + 100 + 200 = 303,此时sum为303
由于global的作用,函数内部,外部的sum是同一个,因此最后一步打印的 sum 也是同一个,为303
打字不易,希望采纳,谢谢
sum = 0
def myadd(x, y):
global sum
sum += x + y
return x + y
print(myadd(1, 2)) # 3
print(myadd(100, 200)) # 300
print('sum=',sum) #303
注释不是把每一步的结果都写清楚了吗,还不清楚就设置个断点跟踪进函数里面去看
你是不理解global 是什么意思
还是不理解sum+=x+y要先算x+y再赋值