一、Python解释器的垃圾回收机制:
当一个值身上没有任何绑定任何变量名时,该值的引用计数就为零,Python会自动回收
该值占用的内存到垃圾机制。
- 对于下述代码:#引用计数增加
x = 10
y=x
z = 10
10的引用计数为多少?
x=10 #10的引用计数加1为1
y=x #10的引用计数加1为2
z=10 #10的引用计数加1为3
- 下述代码:#引用计数减少
x = 257
y = x
del x
x对应的变量值257的引用计数为多少?
x=257 #257的引用计数加1为1
y=x #257的引用计数加1为2
delx #257的引用计数减1为1
二、简述Python小整数池概念:
- 在交互式模式下
Python实现int的时候有个小整数池。为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器会在启动时创建出小整数池,范围是[-5,256],该范围内的小整数 对象是全局解释器范围内被重复使用,永远不会被回收。 - 在pycharm中
在pycharm中运行python程序,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化 机制,至于范围到底多大,无需细究。
三、变量的三个特性:
- id:反应的是内存地址
type:数据类型
value:值
总结:id相同值一定相同,值相同id可以不同。 - 例如:对于
x = 10
,请用Python代码分别打印变量值、变量值内存地址和变量数据类型。
x=10
print(x) #变量值为10
print(id(x)) #变量值内存地址:1722642176
print(type(x)) #变量数据类型: class 'int'
四、is与==
==:值是否相等
is:id是否相等
五、可变类型与不可变类型
可变类型:值改变,id不变,证明就是在改变原值
不可变类型:值改变,id也变,证明根本不是在改变原值,是创建了新值,原值就是不可变类型
六、与用户交互
- 在python3只有一个input
特点:会把用户输入的任何内容都存成字符串类型 - 在python2中
input:要求用户必须输入一个明确的类型,用户输入什么类型,就存成什么类型
raw_input:等于python3的input
七、简述Python的五大数据类型的作用、定义方式、方法:
-
数字类型
整型int
作用:用来记录年龄\身份证号\手机号码\等级
定义:age=10 #age=int10
浮点型float
作用:用来记录薪金\身高\体重
定义:salary=3.1 #salary=float(3.1) -
字符串类型
作用:用来记录描述性质状态,名字、爱好
定义:字符串就是一串被串起来的字符,在引号(单引号、双引号、三引号)内包含一串字符
使用:字符串的拼接
print('abc'+'def') # 仅限于str类型直接相加,不能字符串加其他类型
print('abc'*10) # *字符串的乘法只能乘以数字。 -
列表
作用:用来记录多个值(比如人的多个爱好,一个班级多个学生的性别),用索引对应位置,索引反应的是位置
定义:在[]内用逗号分隔开多个任意类型的值
列表的嵌套取值 -
字典
作用:用来记录多个值,用key对应value,其中key对value有描述性的功能
定义:在{}内用逗号分隔开多个key:value的值,其中value可以用任意数据类型而key通常应该是字符串类型 -
布尔型
所有类型的值都自带布尔值:当数据类型的值为0,None,空时布尔值为False,除此以外都为True