手记

【九月打卡】第1天Python第五章变量与运算符

课程名称:全面系统Python3.8入门+进阶(程序员必备第二语言)

课程章节:5-3 值类型与引用类型

主讲老师:7七月

课程内容:

今天学习的内容包括:

值类型与引用类型

课程收获:

type = 1

type (1)

-------#报错

原因:我们现在把type当做一个变量,然后我们又把整形的数字赋值给了type,根据变量的基本规则,现在这个type是int的数据值。

然后又把一个int类型的变量当做方法来调用,就不对了。

上面的等同于:

1(1)   --------------#报错

int    值类型

list   引用类型

a = 1   #用一个变量a指向整形数字1

b = a   #表明b同样指向数字1

a = 3  #把数值3赋值给a ,a就指向了数值3

此时b依然指向数字1

a = [1,2,3]

b = a

a[0] = '1'         #相当于  a = ['1',2,3]

这个流程并没有让a指向一个新的列表,只是把原来的列表做了改变。这就导致了b所指向的这个列表发生了改变。

此时b所指向了一个新的list。


引用类型和值类型的区别:对于引用类型来说,他本身的数值是可以改变的,他并没有像我们值类型一样。

当你去改变变量a的时候他生成了一个新的数值,他是在你原来的基础上做了改变,也就是说:

引用类型是可变的,但是值类型是不可变的。

值类型:  int  str tuple(元组)  # 不可变


引用类型: list(列表)   set(集合)  dict(字典) #可变

a = 'hello'

a = a + 'python'

print(a)

-----hellopython

#  因为a + 'python',产生了一个新字符串,并不是原来的那个字符串。

id( )   # 现实某一个变量在内存里面的地址

b = 'hello'

id(b)

------55399200

b = b + 'python'

id(b)

------55336696

由此可以证明这2个字符串相加之后,得到了一个新的字符串。自然就不会违背字符串不可改变这样一个原则。



1人推荐
随时随地看视频
慕课网APP