变量
在python中变量是用来按照需要存放数据的,并且存放之后可以通过变量名重新读取里面的数据
变量的三大组成部分
a = "我是变量值"
变量可以按照变量名,赋值符号,变量值分为三个部分
变量名就是我们定义的存放数据的代号,存放之后可以用这个代号提取里面的数据,它就像旅馆中的门牌号,可以根据门牌号找到对应的房间内的人
赋值符号就是我们定义的表示赋值操作的符号
变量值就是我们存放入变量名的数据,它就像之前例子中房间内的人,可以通过变量名找到变量值
变量的基本使用
a = "我是变量值" -------------------这步是存入数据
print(a) -----------------这步是提取数据并输出
通过上面两行代码我们就可以简单的演示变量的存入数据和取出数据的过程
变量名命名规范
变量名有一些命名的规范需要我们遵守:
1.不能使用python中的关键字作为变量名,如果允许这个操作会使得python中的原有功能失效,python为了防止出现这个情况会在使用关键字作为变量名时报错
2.变量命名必须全部使用数字字母下划线组合而成,不能使用其他符号,否则python会报错
3.变量的首字母不能为数字,否则python会报错
变量名命名风格
1.命名要使用驼峰命名法或者下划线分隔的方法进行命名
例如: MyName,my_name
将每个英文单词的首字母大写或者单词之间使用下划线分隔
2.命名变量时要见名知意,这样有助于提高代码的可读性,重复使用也容易回忆
3.尽量不要用拼音以及中文作为变量名,虽然python并不禁止这个操作,但是这样会显得很low噢
变量值的三个特征
id:每个不同的变量都会有不同的id,就像不同的人住在不同的门牌号的房间里一样,变量的id可以反映变量存储的内存地址,id不同变量的内存地址就不同,但是id并不完全等于内存地址
type:使用type(a)可以知道a变量值的数据类型
值:值也就是存入的数据本体
is与==
我们可以用is 和 == 对两个变量进行判断
例如:print(a is b)以及print(a==b)
结果会显示True或者False的布尔值结果,
当这两个变量的变量值完全相同时a==b就是True,否则就是False
而当这两个变量的id相同时,a is b才会显示True,否则为False
由此我们可以看出,is判断的是两个变量的内存地址是否相同,而==仅仅比较的是两个变量的变量值是否相同
并且如果a is b那么a==b就必然为True
小整数池(了解)
一般来说,不同的变量即使变量值相等,但是他们的变量保存的id也就是内存地址一般是不同的,但是在python中由于小的整数例如1,2,3,4这种数字使用到的频率是很高的,python会将变量值同为一个小整数的变量地址存为同一个地址,如a = 1,b = 1,a与b的id就会相同,这就是小整数池的概念.
垃圾回收机制之引用计数
垃圾回收机制是python独特的一种机制,首先我们了解一下什么是垃圾,我们定义一个变量的时候会引入变量值,在内存中产生一个存放变量值的空间,如a="s",这时候a是可以被引用的,假设就a一个变量的变量值为"s",它的引用计数就为1,而当我们del a()时,或者将另一个变量值赋予变量a时,"s"这个变量值就没有任何变量指向它,即引用计数为0,这时我们无法通过任何方式再获取这个变量值,这时这个"s"变量值就成为了垃圾,如果不进行清理会一直占用内存,而python会在数据的引用计数变为0的时候自动清理掉它,这就是python 的垃圾回收机制的基本原理:引用计数
常量
python中并没有常量的概念,但是我们有时会需要这个一个常量,这时我们可以定义一个变量名全为大写的变量,提示其他人这时一个常量,不要去修改它的数值
如:MYNAME