内存管理

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.3print(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)