变量:储存计算结果或能表示值的抽象概念
原则:先定义,后引用
变量名原则:要见名知意,不能用关键字命名,字母数字下划线组合,不以数字开头
命名风格:1.纯小写加下划线age_wang,推荐 驼峰命名法AgeWang
name = 'JCwang' # 定义
print(name) # 引用
age = 22 # 定义
print(age) # 引用
xxx # 代表一个变量名,只不过没有被定义
'xxx'# 代表的是值
变量的三个重要特征
id:反映的是变量值的内存地址,内存地址不同id不同
print(id(name))
type:不同类型的值用来表示不同的状态
print(type(name))
value:变量值本身
print(name)
is 与==
is:比较的左右两个值的id是否相等
==:比较的是左右两个值的值是否相等
值相等,id可能不同,两个不同的内存空间可以存相同的值
只要有赋值操作,就会在内存中申请新的内存空间
id不同的情况下,值有可能相同,既两个不同的内存空间可以存相同的值
id相同的情况下,值一定相同x is y成立,x==y也一定成立
小整数池【-5~256】pycharm会优化,扩充这个范围
从python解释器启动那一刻,就会在内存中事先申请好一系列内存空间用于存放常用的整数
当在把这些整数赋值给新的变量时,就不会再去申请新的内存空间了,而是直接指向实现申请好的内存空间
这样虽然启动时候慢,但是节省了内存空间
内存管理:垃圾回收机制
垃圾:当一个变量值被绑定的变量名个数为0的时候,该值无法被访问到,存储在内存中的值只占空间却不能被找到且使用,这个就属于垃圾
垃圾过多的时候就会导致内存溢出
引用计数:
引用计数增加:
'''
x = 10 # 10的引用计数为1
y = x # 10的引用计数为2
z = x # 10的引用计数为3
# 引用计数减少:
del x # 解除变量名x与值10之间的绑定关系,引用计数减少,变成了2
del y # 10的引用计数为1
z =20 # 值10的引用计数变成了0,这时候它就是一个垃圾
python会自动清理这些垃圾
常量:不变的量
python语法中没有常量的概念,但是开发过程中会涉及到
都用大写来表示某一常量,这只是一种规范