1 # Learner BM
2 """
3 1\什么是引用,python中,变量和值的存放地为不同的地方
4
5 值存储在内存中,每个内存有一个内存地址
6 引用就是内存地址
7 a=1
8 内部流程理解为
9
10 a是一个数据, 需要通过内存地址 1550829488 才能找到数据1
11
12 a 对应内存地址 '1550829488' 找到 数值 '1'
13 若定义
14 b =a
15 则变量b会通过 '1550829488' 招待 数值 '1'
16
17 python中,变量,以及函数的参数,函数返回值 都是通过引用进行传递的,变量的变化不会变更最终数据的值,
18 只是变更的 变量的引用地址, 值当没有引用产生的时候,会被python的解释器进行清理
19
20
21 """
22 a = 1
23 print(id(a))
24
25 """
26 2 什么是可变类型,不可变类型
27 python中 数字,字符串,元祖 属于不可变类型
28 列表,字典属于可变类型,使用方法修改内部数值可以变
29 (赋值语句会创建新列表字典)
30 什么是可变,不可变,意思就是变量一旦定义后
31 内存中存储的值,是否允许被修改,
32
33 """
34 # 定义列表
35 list1 = ['Lily', 'Hanmeimei', 'Lucy']
36 # 输出内存地址
37 print('list的内存地址是', id(list1))
38 # 使用方法,修改列表的值
39 list1.append('kate')
40 print('list的内存地址使用append方法后地址是', id(list1))
41 # 内存地址不会发生变化
42 print(list1)
43
44 # ******使用复制语句,对列表进行操作list1[] =['Marry'] 相当于创建新列表,修改了变量的引用
45 list1 = ['Marry']
46 print('list的内存地址使用赋值后地址是', id(list1))
47 print(list1)
48
49 """
50 字典的key只能使用不可变类型, 字符串,元祖,数字,(不能使用列表或字典作为KEY)
51
52 """
53 # 定义一个普通字典
54 dic1 = {(1, 2, 3): 'hello'}
55
56
57 """
58 可变不可变列表,字典总结
59 列表,字典等不可变类型,在函数外部,通过赋值进行更改列表名list1 = ['Marry'],列表的内存地址会发生变化,产生新的列表
60 使用方法修改列表,不会产生变化
61 但是在函数内部,通过赋值修改列表,不会对外部数据进行修改,但是使用方法修改时候,会对外部数据进行修改
62
63 """