关于课后作业函数的一道问题
本帖最后由 咕咕鸭 于 2022-7-23 10:19 编辑{:10_305:}
如图
不太理解小甲鱼这两题的解释。
第四题:
>>> x =
>>> def invert(x):
... x = x[::-1]
...
>>> invert(x)
>>> print(x)
>>> # 请问这里会打印什么内容?第五题:
>>> x =
>>> def invert(x):
... x[:] = x[::-1]
...
>>> invert(x)
>>> print(x)
>>> # 请问这里会打印什么内容?答案:x=
就是为什么第五题,局部变量可以改变全局变量X的值
希望大佬解答,谢谢{:10_254:}
ZhKQYu 发表于 2022-7-23 12:27
因为把x作为参数传入了,而且x是列表是一种可变的数据类型
>>> x = 10
>>> def change(x):
x = 100
>>> change(x)
>>> x
10
>>> x =
>>> def change(x):
x.append(100)
>>> change(x)
>>> x
图片看不清啊,狠不清楚,为啥不发文本代码
难道是打文本代码狠复杂吗 全局变更是全局可用的。
函数中前面的x是局部变量,等号后面的x是全局变量,其实并不是修改,而是把全局x处理后的值赋给局部x。
全局x没有被修改,最后打印的x还是全局x的值。 wp231957 发表于 2022-7-23 05:18
图片看不清啊,狠不清楚,为啥不发文本代码
难道是打文本代码狠复杂吗
好了,不好意思{:10_324:}我这边图片怪清楚的,不知道你那边看不清{:10_266:} 因为把x作为参数传入了,而且x是列表是一种可变的数据类型
本帖最后由 Stubborn 于 2022-7-23 15:19 编辑
我怎么没有看到,局部变量能修改全局变量呢,你仔细看看。
首先,我们需要声明一个变量,xx = ??。 变量名字,等于什么什么(看向第四题)
那么我们需要使用一个变量呢?例如x = 2(看向第五题),这里只是打个比喻,实际上需要这么理解,把列表里面的所有数据x[:]赋值为x[::-1]
ps::补充,容器类的数据,不需要声明,可以修改里面的数据。
看不清 x[:]调用的是列表的方法
变量原地址不变,修改里面的内容
直接赋值x
会创建一个新的列表 谢谢大家,我明白了{:10_259:}
页:
[1]