|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Stubborn 于 2020-6-12 22:46 编辑
首先让我们看,很简单的代码。确认看懂,或者已经懂了,移至下面测验。答对有奖。
- string = "ein"
- names = []
- names.append(string)
- string1 = string
- names1 = names
复制代码
我们可以把它联想成这样的场景:
1。我们一个叫string的变量指向,贴在,纸片上,反正我们的string变量,已经和纸片联系上了,它表示一个str类,值是ein。
2。同样我们一个叫names的变量指向纸盒,已经和纸片关联上,它表示一个list类,没有值,是一个空对象。
3。我们向names添加了一个值,
4。我们把string的值赋给了string1,实际上,也是 string1指向纸片,和纸片进行关联
5。同理,names1也是一样。
然后继续运行
- >>>...
- string = "stu"
- names1.append(string)
- names = []
- names.append(string)
复制代码
1。我们对string重新赋值,这个赋值是一个全新的值。所有有了一个新的 ‘纸片’
2。我们向names1的纸盒中,添加一个值,“stu”
3。我们对names重新赋值,注意注意,在赋值前,names和names同时指向的一个位置,也就是说,对names1进行添加值,是会影响到names的。
4。我们向names添加一个值“stu”
以下,全部是目测题,请在不上机情况下,回答打印结果
第一题
- def cre():
- return [lambda x: x * i for i in range(5)]
- print(cre()[0](2))
复制代码
第二题
- def fun(val=[]):
- val.append(2)
- return val
- fun()
- fun(val=[])
- print(fun())
复制代码
第三题
- lista = [[]] * 10
- lista[0].append(10)
- print(lista[-1])
复制代码
第四题
- a = 5
- b = a
- c = b
- a += 1
- b += 1
- print(c)
复制代码
|
|