![fe7d645fb5fefc4aa268807a3c0bc64a.png](https://i-blog.csdnimg.cn/blog_migrate/557de3e6fa2bff0658ddfba5ba26f6ab.jpeg)
一:问号三连
1.什么是变量
变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等等
2.为什么要有变量
为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的
详细地说:
程序执行的本质就是一系列状态的变化,变是程序执行的直接体现.
所以我们需要有一种机制能够反映或者说是保存下来
3.如何用变量
![1abcc536ed12c2908cccd061803d6aec.png](https://i-blog.csdnimg.cn/blog_migrate/e6a5ac5d0b61a3d3608afe93e5b3da2a.jpeg)
二:变量的使用
1.变量基本使用
原则:先定义,后引用
![f0ff56c26bc1f9f07c15f40c1d0b11d4.png](https://i-blog.csdnimg.cn/blog_migrate/9ba9a92f93f5b3bd2f44352e951956a8.jpeg)
name = 'egon' # 定义变量 ---> 存
print(name) #引用变量 ---> 取
age = 18
print(age)
2.内存管理:垃圾回收机制
垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾
![6ccb364be690e5d352365c8132f83ac9.png](https://i-blog.csdnimg.cn/blog_migrate/1cd51e78ea3b9cf92ec03d684a8e30ce.jpeg)
引用计数增加
x = 10 # 10的引用计数为1
y = x # 10的引用计数为2
z = x # 10的引用计数为3
引用计数减少
del x # 解除变量名x与值10的绑定关系,10的引用计数变为2
# print(y)
del y # 10的引用计数变为1
# print(z)
z = 12345 # # 10的引用计数变为0
# print(z)
3.变量的3大组成部分
① 变量名:是指向等号右侧值的内存地址的,用来访问等号右侧的值
② 赋值符号:将变量值的内存地址绑定给变量名
③ 变量值:代表记录的事物的状态
![b5f4c41db7870a0cc075adf30484c10b.png](https://i-blog.csdnimg.cn/blog_migrate/7a9f5b034efdd8fe9956568c51beb7d8.jpeg)
4.变量名的命名的规则
原则:变量名的命名应该见名知意
① 变量名只能是 字母、数字或下划线的任意组合
![3cef7e30e8fddbaf90df67f14b70beba.png](https://i-blog.csdnimg.cn/blog_migrate/a5b34d98eb50fe9711a05fe514e127d3.jpeg)
② 变量名的第一个字符不能是数字
③ 关键字不能声明为变量名,常用关键字如下
['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']
![6ab489f440711aae3562f0b23838afec.png](https://i-blog.csdnimg.cn/blog_migrate/26c75ce713566cd06a0d72f6cc8e2412.jpeg)
PS:不要用拼音,不要用中文,在见名知意的前提下尽可能短
![f6a19e0e626cee6fd43a4870c08cbe36.png](https://i-blog.csdnimg.cn/blog_migrate/42aeefc392e74f5aed1106eb1b5c339a.jpeg)
5.变量名的命名风格
① 纯小写加下划线的方式(在python中,关于变量名的命名推荐使用这种方式)
age_of_alex=73
# print(age_of_alex)
② 驼峰体
![5a7c616e01ac845b3465729eeabc1384.png](https://i-blog.csdnimg.cn/blog_migrate/dc5c84a4419ae40134e60ed5d6c26f04.jpeg)
AgeOfAlex=73
# print(AgeOfAlex)
6.变量值三个重要的特征
name='egon'
id:反映的是变量值的内存地址,内存地址不同id则不同
print(id(name))
type:不同类型的值用来表示记录不同的状态
print(type(name))
value:值本身
print(name)
变量的值不同,id不同:
a = 1
b = 2
c = 3
print(id(a))
print(id(b))
print(id(c))
1662969776
1662969792
1662969808
变量的值相同,id相同:
a = -1
b = -1
c = -1
print(id(a))
print(id(b))
print(id(c))
1662969744
1662969744
1662969744
id相同,值一定相同(同一块内存地址,全都相同)
id不同,值可以相同,也可以不同(不同的内存地址,可以放一样的,也可以不一样)
7.is 与 ==
![ba53407f52410fef9865d0387c8465cf.png](https://i-blog.csdnimg.cn/blog_migrate/731fde939a216b38b0439696b105f366.jpeg)
is:比较左右两个值身份id是否相等
==:比较左右两个值他们的值是否相等
值相等,id可能不同,即两块不同的内存空间里可以存相同的值
>>>
>>> x='info:Egon:18'
>>> y='info:Egon:18'
>>> print(x,y)
info:Egon:18 info:Egon:18
>>> print(id(x),id(y))
4565819264 4566192176
>>>
>>> x == y
True
>>> x is y
False
8.了解:小整数池[-5,256]
从python解释器启动那一刻开始,就会在内存中事先申请好一系列内存空间存放好常用的整数
>>> m=10
>>> n=10
>>> id(m)
4562619328
>>> id(n)
4562619328
>>>
>>> res=4+6
>>> res
10
>>> id(res)
4562619328
>>> x=-5
>>> y=-5
>>> x is y
True
>>> x=-6
>>> y=-6
>>> x is y
False
>>> x='aaa'
>>> y='aaa'
>>>
>>>
>>> id(x)
4566200880
>>> id(y)
4566200880
x=-6
y=-6
print(id(x))
print(id(y))
print(x is y)
9.常量:不变的量
![fa0e01c92901ed8678b315b4da832065.png](https://i-blog.csdnimg.cn/blog_migrate/1e38e55be2cc15ec20265c302713af89.jpeg)
注意:python语法中没有常量的概念,但是在程序的开发过程中会涉及到常量的概念
AGE_OF_ALEX=73 # 小写字母全为大写代表常量,这只是一种约定、规范
AGE_OF_ALEX=74
print(AGE_OF_ALEX)