03-01 python语法入门变量
一、变量
1、什么是变量?
变量就是可以变化的状态。变就是变化,量就是事物的状态
2、为什么要有变量?
人类想让计算机和人一样有记忆事物的状态,且这种状态是可以变化的。详细的地说:程序就是一系列状态地变化,变是程序执行地直接体现,所以我们需要有一种机制能够反映或着说保存下来程序执行时状态,以及状态地变化。
3、如何用变量?
变量的定义与使用
变量的定义由三部分组成
- 变量名:变量名相当于门牌号,指向变量值的内存地址,是访问值得唯一方式。
- 赋值符号:等号为赋值符号,用来将变量值的内存地址绑定给量名。
- 变量值:变量值就是我们存储的数据,反映的是事物的状态。
变量定义示范
原则:先定义,后引用
python"># 解释器执行到变量定义的代码时,会向操作系统发送系统调用申请一块内存空间,把18这个变量值的内存地址绑定给变量名age。age = 18 # 定义
# 通过变量名age就能访问到变量值18的内存地址,通过打印功能print打印出来
print(18) # 引用
变量名的命名规范
- 1、变量名只能由字母、下划线、数字组成
- 2、变量名不能由数字开头
- 3、变量名不能声明为关键字,常用关键字如下:
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from','global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
错误示范如下:
# 变量名的命名不要使用拼音mingzi = 'WangMao'
# 变量名的命名不要使使用中文
名字 = 'egon'
正确示范如下:
age_of_alex = 73age1 = 84
变量名的命名风格
# 纯小写 + 下划线age_of_alex = 84
# 驼峰体
AgeOfAlex = 73
变量名的三大特征
1、id:反映的是变量值在内存中的唯一编号,内存地址不同id肯定不同
2、type:变量值的类型
3、value:变量值
查看变量值的三大特征如下:
>>> info = 'Hello World!'>>> id(info),type(info),info
(1381707360816, <class 'str'>, 'Hello World!')
is与==
- is:比较的是左右两个值身份的id
- ==:比较的是左右两个值是否相等
# 示范一:值相同,id不同>>> x = 'info:egon:18'
>>> y = 'info:egon:18'
>>> print(id(x), id(y))
1381707431536 1381707431472
>>> x is y
False
>>> x == y
True
# 示范二:值不相同,id不同
>>> a = 1
>>> b = 2
>>> print(id(a), id(b))
140714966501024 140714966501056
>>> a is b
False
>>> a == b
False
# 示范三:值相同,id相同
>>> m = 10
>>> n = 10
>>> print(id(m), id(n))
140714966501312 140714966501312
>>> m is n
True
>>> m == n
True
# 总结
# 由示范一、示范二可知:id不同的情况下,值可能相同(也就是两块不同的内存空间里可以存放相同的值)
# id相同的情况下,值一定相同(也就是 m is n成立,m == n也一定成立)
小整数池(了解)
注意:小整数池是pyhton解释器的优化机制,而pycharm把整数迟迟本文只做整数方面的了解,需要了解更多详细内容请到:https://www.cnblogs.com/jin-xin/articles/9439483.html#title-0-2-0
>>> m=10>>> n=10
>>> id(m)
4562619328
>>> id(n)
4562619328
# 一般来说,m=10应该申请了一块内存空间,n=10也申请了一块内存空间,其中m=10的内存地址应该和n=10的内存地址编号不一致,可为什么导致id编号都一致呢?
# 这归功于python解释器启动的那一刻开始,就会在内存中事先申请好一系列内存空间存放好常用的整数,当这些整数在这个范围之中时,并不会开辟新的内存空间,目的是为了节约内存空间
二、垃圾回收机制和引用计数
什么是垃圾?
当一个变量值被绑定的变量名的个数为0是,该变量值无法被访问到,这个值就是垃圾
为什么要回收垃圾?
如果囤积了过多无法被访问到的变量值,且不能回收,内存空间就会可能发生内存溢出的问题,存在极大的危险性。
什么是引用计数?
变量值被变量名关联的次数
引用计数增加,如下:
x = 10 # 10的引用计数为1y = x # 10的引用计数为2
z = x # 10的引用计数为3
引用计数减少,如下:
del操作清理的是栈区的内容。普通用户,操作不了堆区(堆区由GC接管),只能操作栈区,我们的del操作解除的只是栈区中变量名与值得内存地址映射关系。详细了解请到该地址得垃圾回收机制原理分析中得标记清除小节:https://www.cnblogs.com/yang1333/p/12421112.html
# del减少引用计数# 注意:del并不是删除的意思,而是解除变量名与变量值的绑定关系
x = 10 # 10的引用计数为1
y = x # 10的引用计数为2
del y # 10的引用计数为1
del x # 10的引用计数为0,此时10引用计数为0被当作垃圾回收。
# 变量名换绑新变量值
n = 100
n = 1000 # 把绑定100变量值的变量名n,换绑给新的变量值1000,此时100的引用计数为0被当作垃圾回收
三、常量
1、什么是常量?
常量指在程序中不会改变的量。
2、为什么要有常量
在程序的运行过程中,有些指是固定不变的不因该被改变,比如:圆周率等等
3、怎么使用常量?
注意:在python中没有一个专门的语法定义常量,预定熟成使用全部大写字母的变量名表示常量。如:
Π ≈ 3.14
- 从语法成面讲,常量的使用与变量完全一致。
以上是 03-01 python语法入门变量 的全部内容, 来源链接: utcz.com/z/388744.html