作业十九 局部变量和全部变量
def fun(var):var = 1314
print(var, end='jj')
var = 520
fun(var)
print(var)
为啥打印出来是1314jj520,而不是1314520jj呢 你或许不太清楚end的用法?
end简单来讲,就是附在打印内容后面的一个东西,
比如要打印的内容是"I love", end是"FishC",打印出的结果就是
"I love" + "FishC", 也就是I love FishC。
这个参数默认是换行符,所以你平常在print某个东西时就会换行一次。
既然知道了这个,那么我想结果就显而易见了。 qiuyouzhi 发表于 2020-8-5 17:58
你或许不太清楚end的用法?
end简单来讲,就是附在打印内容后面的一个东西,
比如要打印的内容是"I love" ...
我知道end的用法,如果把end=“jj”替换成end=“ ”,那么他打印出来是1314520,我不懂的内容是为什么会打印出这个,知识点是局部变量和全局变量的问题。 本帖最后由 _2_ 于 2020-8-5 18:07 编辑
小小鹏 发表于 2020-8-5 18:03
我知道end的用法,如果把end=“jj”替换成end=“ ”,那么他打印出来是1314520,我不懂的内容是为什么会 ...
因为无论 var 为何值,在函数内部就会重新创建一个同名的变量 var(两个变量,一个全局,一个局部),且被赋值为 1314,所以函数只会 print 出 1314jj
由于 end="jj" , 紧接着就会在后面输出 520,结果就是这样造成的 小小鹏 发表于 2020-8-5 18:03
我知道end的用法,如果把end=“jj”替换成end=“ ”,那么他打印出来是1314520,我不懂的内容是为什么会 ...
噗哈哈哈哈
我的问题,我没细看,对不起
因为你自己设置了一个和参数同名的变量,
而你不global var,是不可以改变var的,只能访问它。
所以fun函数打印的是它内部的var,而不是参数var(内部var覆盖了参数var) qiuyouzhi 发表于 2020-8-5 18:05
噗哈哈哈哈
我的问题,我没细看,对不起
因为你自己设置了一个和参数同名的变量,
跟 end 没有关系……
是 var 的问题罢了{:10_257:} _2_ 发表于 2020-8-5 18:08
跟 end 没有关系……
是 var 的问题罢了
是啊,可是lz把
1314jj520和1314520jj放在一起对比
我就以为是end的问题{:10_250:} qiuyouzhi 发表于 2020-8-5 18:10
是啊,可是lz把
1314jj520和1314520jj放在一起对比
我就以为是end的问题
520 总是会在最后输出,因为先执行了 func()
页:
[1]