一、内存管理
1.python解释器的垃圾回收机制
垃圾:当一个值上没有人绑定任何变量名时(当引用计数为0),该值就是一个垃圾。
python解释器运行时会检测值的引用计数,当引用计数=0该值会被清除释放。
age=18 #18的引用计数此时为1 x=age #18的引用计数此时为2 del x #18的引用计数此时变回1 del #解除变量与值的引用关系
2.变量值的三个特征
-
id:反映的是值的内存地址
-
type:数据的类型
-
值:本身
age=18 print(id(age)) print(type(age))
3.is与==比较
-
is:比较数据的id,也就是值的内存地址
-
==:比较数据的值
x='name:dengyifan' y='name:dengyifan' x==y #运行结果显示true x is y #运行结果显示false #总结:值的id一样,值一定相同;值相同,id可能不同
4.可变类型与不可变类型变量
可变类型:值改变,id不变,证明就是在改变原值
不可变类型:值改变,id也变,证明不是改变原值,是创建了新值,原值就是不可变型
#可变类型 l=['a','b','c'] print(id(l)) #运行结果为list l的id l[0]='A' print(id(l)) #运行结果为新的表格l=['A','b','c']的id,两个id一样 #不可变类型 x=10 print(id(x)) #10的内存地址 x=11 print(id(x)) #11的内存地址 #两个变量的前后id不一样
二、python2中与用户交互
1.python3中只有一个input 特点:用户输入任意内容都存成str类型。
2.python2中有raw_input与python3中input功能一模一样
但input输入要求用户必须输入一个明确的类型,输入深恶类型都存成什么类型。
三、数据类型的基本使用
分作用、定义、使用方法说明
1.int整形
abc=10 #age=int(10) #整数数字作为值
2.float浮点型
作用:记录身高、体重、工资等带有小数的数字
salary=3.1 #salary=float(3.1) #print(type(salary)) #float #数字类型=int+float
3.str字符串
作用:用来记录描述性质状态,例如名字、性别、职业等
定义:在单引号('...'),双引号(''...''),三引号('''...''',""".....""")之间包含的一系列字符
x='abc' #x=str('abc') y="mingyang" #y=str("mingyang") z='''xiaojinmao''' #z=str('''xiaojinmao''')
使用:"+"表示字符串的拼接,但仅限于str类型直接相加
"*"后只能跟数字,表示复制字符串的次数
print('abc'+'def') #运行结果为abcdef print('abc'*3) #运行结果为abcabcabc
4.list 列表类型
作用:用来记录多个值,用索引对应值
定义:在[ ]内用逗号分隔开多个任意类型的值
L=[1,2.1,'abc',['a','b','c']] #L=list(......) #列表内的值可以是任意类型 #列表的调取: print(L[0]) #print()表示输出变量L的列表 #[0]表示引用列表的第1个值 计算机位置从0开始
5. dict 字典类型
作用:用来记录多个值,用key对应value,其中key对value有描述性的功能
定义:在{}内,用逗号分割开多的元素,每一个元素都是key:value的形式,其中value可以是任意形式类型,而key通常是str类型
('key':value)。
s={'x':1,'y':2.1,'z':['a','b'],'m':{'c':'mingyang','d':'gongmingxian'}} #使用 print(s['x']) print(s['m']['c']) print(s['z'][1])
6.布尔类型 (true false)
1.所有数据类型自带布尔类型
2.布尔值为false的数据类型有:0,none,空