内存管理
1.Cpython解释器的垃圾回收机制
什么是垃圾:当一个值身上没有人绑定任何变量名(该值引用计数为0时),该值就是一个垃圾。
引用计数增加
age=18 #18的引用计数等于1
x=age #18的引用计数等于2
引用计数减少
age=19 #18的引用计数等于1
del x #18的引用计数等于0
2.变量值的三个特征:
id:反映的是内存地址
type:数据类型
值:
age=18
总结:id相同,值一定相同,值相同,id可以不同
3.is与==
==:值是否相等
is:id是否相等
4.可变类型与不可变类型
可变类型:值改变,id不变,证明实在改变原值
不可变类型:值改变,id也变,证明不是在改变原值
数字类型
1.整形int
作用:用来记录年龄、等级、各种号码状态
定义:
age=10 #age=int(10) print(type(age)) #使用 print(age+1) print(age>3)
2.浮点型float
作用:用来记录身高体重、工资等状态
定义
salary=3.1 #salary=float(3.1) print(type(salary)) #使用: print(3.1+2.3) print(3.1>2)
3.字符串类型str
作用:用来记录描述性质状态,比如名字、性别...
定义:在单引号、双引号、三引号内包含一系列字符
x='abc' #x=str('abd') print(type(x)) y="abd" z=''' abc xxxx ''' msg='my name is 'egon' '' #使用: print('abc'+'def')#仅限于str类型直接相加 print('abc'*10)
4.列表list
作用:用来记录多个值,用索引对应值,索引反映的是位置
定义:在[]内用逗号分隔开多个任意类型的值
l=[1,2.1,'xxx',['a','b','c']] #l=list(...) print(type(1)) #使用 print(l[0]) print(l[2]) print(l[3][0])
5.字典类型dict
作用:用来记录多个值,用key对应value,其中key对value由描述性功能。
定义:在{}内,用逗号分隔开多元素,每一个元素都是key:value的形式,其中value可以是任意类型,key通常应该是字符串类型
d={'x':1,'y':2.1,'z':['a','b'],'m':{'aaa':1111}} #d=dict(...) print(type(d)) #使用 print(d['x']) print(d['m']['aaa']) print(d['z'][1])
6.布尔类型:True,Flase
print(type(True)) print(type(False)) age=18 print(age>18) #所有数据类型自带布尔值 #布尔值为假的数据类型:0,None,空 print(bool([])) print(bool(''))
基本运算符
1.比较运算符
> >=
< <=
==
!=
print(10!=11) l1=['abc',1,['a','b','c']] l2=['abc','aa',] print(l2>l1)
2.逻辑运算符
and:连接左右两个条件,值由两个条件同时成立时,结果才为真
or:连接左右两个条件,两个条件成立一个时,结果就为真
not
print(not 10>3)