一.注释
1.什么是注释
注释就是注解说明
2.怎么使用注释
- 对整个文件注释
"""
注释1
注释2
注释3
对整个Python文件做一个整体的描述
"""
- 对关键信息注释
# [注解的信息]
print("Hello word!") # [注解的信息]
可以写在代码的开头的后面
如果代码太长尽量不要写后面
- 批量加注释
"Ctrl + ?" (将鼠标选中的行全部注释掉)
# print("123")
# print("123")
# print("123")
二.变量
1.什么是变量
- 变: 事物的状态都是变化的
- 量: 记录下事物的状态
- 变量是一种存取内存的机制
2.为何要用变量
- 变量的意义在于为了让计算机像人一样记下事物的状态
3.如何使用变量
原则
:
- 先定义
- 后引用
#错误示例
print(x)
x = 1
4.变量的三大组成部分
- 变量名 : 用来访问变量的值(相当于一个门牌号)
- 赋值符号 : 把值的内存地址绑定给变量名
- 变量值 : 记录事物的状态, 即存数据
5.变量名命令规则
- 大前提 :
见名知意
: 如: age = 18, level = 20 - 由字母,数字,下划线组成
- 不能以数字开头
- 不能使用python语言的关键字
6.命名风格
- 纯小写加下划线
age_of_shawn = 21
hight_of_shawn = 173
- 驼峰体
AgeOfShawn = 21
HightOfShawn = 174
三.变量的使用
1.定义变量
age = 18
level = 10
name = "shawn"
2.引用变量
print(age)
print(name)
3.变量名所在位置的意义
变量名在左边代表赋值
age = 18
左边的是赋值,右边的是取值
age = age + 1 # age = 18+1 = 19
四.变量的两大特征
-
id
: 变量值的身份证, 反应的是内存地址 -
type
: 变量值的类型
一个变量的"id"和"type"
x = "aaa"
print(id(x)) #2282514548400
print(type(x)) #<class 'str'>
"id"一样,代表内存地址一样,指向的是同一个内存空间,值一定一样
x = 10
y = 10
print(id(x)) #140724873359904
print(id(y)) #140724873359904
print(type(x)) #<class 'int'>
print(type(y)) #<class 'int'>
五.变量值的判断
-
is
: 表示"id"和值一样, 其实就是同一个值 -
"==" : 表示值一样, "id"可以不一样, 也就是说不同的内存空间可以放相同的值
x = 10
y = 10
print(x is y) #True
print(x == y) #True(判断值是否相等)
六.小整数池
1.在交互式模式下
- Python实现 int 的时候有个小整数池
- 为了避免因创建相同的值而重复申请内存空间所带来的效率问题
- Python解释器会在启动时创建出小整数池,范围是[-5,256]
- 该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被 GC 回收
"-5~256"都是同一个池子里拿的,所以内存地址相同
>>> y=4
>>> id(y)
4297641184
>>>
>>> x=3
>>> x+=1
>>> id(x)
4297641184
2.在 pycharm 中
- 但在pycharm中运行python程序,pycharm出于对性能的考虑,会扩大小整数池的范围
- 其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了
- 我们只需要记住这是一种优化机制,至于范围到底多大,无需细究
六.常量
-
不变的量(比如圆周率:π)
-
一般用大写字母表示(但在python里还是能改变)
AGE_OF_HAHA = 78
level_OF_HAHA = 100
七.垃圾回收机制 GC
-
引用计数
x = 18 #18被引用了一次,计数为1
y = x #18 被引用了两次,计数为2
-
循环引用
循环引用----->存在着内存泄漏的漏洞, 需要清除标记
-
分代回收
y = 20 #18的引用减1,计数为1
del x #18的引用减1,计数为0