python变量
1.变量
一、什么是变量?
变量从字面上的意思就可以理解成:是变化的量,描述世间万物的状态。
- 变:现在世界中的状态是会发生改变的。
- 量:记录现实世界中的状态,让计算机能够像人一样去识别万物。
二、为什么要有变量?
对于现实世界,一定是要有一个变量来描述世间万物的。但是计算机为什么也要有变量的概念呢?其实计算机中程序的运行就是一系列状态的变化,如王者荣耀中账号等级0级到30级、废铁到王者;植物大战僵尸中僵尸打着打着就死了。
三、定义变量
既然知道了变量是什么玩意,那我们如何在python中定义变量呢?
## 例子:
name = 'mila'
age = '19'
height = '180'
##上面都是变量
四、变量的组成
从我们上面的定义来看,变量可以分为以下三个部分:
变量名(接受变量值) = (赋值符号) 变量值
-
变量名:变量名用来引用变量值,但凡需要用变量值,都需要通过变量名。
-
赋值符号:赋值
-
变量值:存放数据,用来记录现实世界中的某种状态。
# 只有变量名,赋值符号,变量值,会报错,而且毫无意义 name + = 100
name = 'mila' age = '19' height = '180' print(name) print(age) print(height) #输出: mila 19 180
五、变量名的命名规范
变量是有一定的命名规范的一定要记住,定义一个变量其实就是在记录现实世界中的状态,并且存永远不是目的,取才是目的。
变量的命名应该要满足以下三个条件:
-
变量的命名应该能反应变量值所描述的状态。
-
变量名必须由字母数字下划线组合,并且变量名的第一个字符不能是数字。
-
关键字不能声明为变量名。
-
变量名都具有可读性(意思),存不是目的,取才是目的
-
查找关键字
import keyword print(keyword.kwlist)
-
注意:可以用中文命名,但是不建议使用
身高 = 180
print(身高)
#输出:
180
六、变量名的俩种风格
6.1 驼峰体
AgoOfChen = 19
print(AgoOfChen)
19
6.2下划线(推荐使用)
age_of_chen = 19
print(age_of_chen)
19
注意:以上俩种变量名的风格,推荐使用下划线的风格
2.变量的三个特征
对于每一个变量,python都提供了这三个方法分别获取变量的三个特征,其中python的内置功能的id(),内存地址不一样,则id()后打印的结果不一样,因为每一个变量值都有其内存地址,而id()是用来反映变量值在内存中的位置,内存地址不同则id不同。
x = 10
print(x)#获取变量的变量值
print(id(x))#获取变量的id,可以理解成变量在内存中的地址
print(type(x))#获取变量的数据类型,下章会详细介绍数据类型
一、打印
x = 10
print(x)# 获取变量的变量值
二、判断变量值是否相等
name1 = 'egon'
name2 = 'chen'
print(name1 == name2) # 获取变量的变量值
三、判断变量id是否相等
x = 11
y = x
z = 11
print(x == y) #True
True
print(x is y)#True
True
print(x is z)#True
True
x = 257
z = 257
print(x is z) #False
Talse
从上述的打印消息可以看出:id相等的变量,值一定相等,指向的是同一个内存地址;值相等的变量,id不一定相等。
某种在第一次打印print(x is z)的时候就触发了整数池,这可以理解成python的优化机制,11的值本身不大,并且由于我们快速的再一次使用了11,在由于申请内存空间需要计算机开销,因此python让x和z都指向同一个11,因此存不是目的,取才是目的,这样进行优化的话并不会影响程序的运行。
3.花式赋值
一、链式赋值
a = 10
b = 10
c = 10
d = 10
print(f'a:{a},b:{b},c:{c},d:{d}')#a:10,b:10,c:10,d:10
输出:a:10,b:10,c:10,d:10
a = b = c = d = 10
print(f'a:{a},b:{b},c:{c},d:{d}')#a:10,b:10,c:10,d:10
输出:a:10,b:10,c:10,d:10
二、交叉赋值
#中间变量的思想
x = 100
y = 200
temp = x
x = y
y = temp
print(f'x:{x}') #x:100
print(f'y:{y}') #y:200
输出:
x:100
y:200
## 交叉赋值
x = 100
y = 200
x, y = y, x
print(f'x:{x}')
print(f'y:{y}')
输出:
x:100
y:200