python 为什么这段代码是这个结果

图片说明

这个结果为什么是1,不是2呢?

fun(a)这里的a是作为全局变量,第一行的a,为1。
函数内,修改的是作为参数的a,而不是全局变量,虽然a被修改为2,但是无法作用到实参上。
将def fun(a):修改为 def fun():
fun(a)修改为fun(),则结果是2

函数修改的是形参的值,不会影响到实参。

a=1//全局变量
def fun(a) : //a作为函数的入参,可以理解为局部变量,作用域只在函数体内。
a=2

fun(a) //只是将全局变量a的值传入,fun中对a值的任何修改不回影响到a.除非这里传的是全局变量a的地址指针。
printf(a)//输出全局变量a的值,这个值未被改过, 仍为1,

了解下作用域 其实你只是在函数内定义了个同名变量