文章目录
什么是变量?
- 变量就是可以变化的量
- 量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等等
- 变量是一种存去内存的机制
为什么要有变量?
# 为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的
# 详细地说:
# 程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态,以及状态的变化。
怎么使用变量?
原则:先定义后使用
变量的定义由三部分组成,如下图:
定义变量三大组成部分:
1 变量名:是用来访问变量值的
2 赋值符号:把值的内存地址绑定给变量名
3 变量值:记录的事物的状态,即存的数据
定义变量示范如下
age = 18 #记下年龄为18
sex = '男' #记下人的性别为男性
name = "egon" #记下名字
解释器执行到变量定义的代码时会申请内存空间存放变量值,然后将变量值的内存地址绑定给变量名,以变量的定义age=18为列
定义变量申请内存
通过变量即可引用对应的值
#通过变量名即可引用到值,我们可以结合print()功能将其打印出来
print(age) #通过变量名age找到值18,然后执行print(18),输出:18
变量名的命名规范
变量名的命名应该见名知意
# 如果我们要存储的数据18代表的是一个人的年龄,那么变量名推荐命名为age
age = 18
# 如果我们要存储的数据18代表的是一个人的等级,那么变量名推荐命名为level
level = 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']
# 错误示范如下:
*a=123
$b=456
c$=789
2_name='lili'
123='lili'
and=123
年龄=18 # 强烈建议不要使用中文命名
# 正确示范如下
age_of_jason=31
page1='首页'
_class='终极一班'
变量名的命名风格
#方式一:驼峰体
AgeOfOldboy = 56
NumberOfStudents = 80
#方式二:下划线(推荐使用)
age_of_oldboy = 56
number_of_students = 80
定义变量名不好的方式
1.变量名为中文、拼音
2、变量名过长
3、变量名词不达意
变量的使用
1.定义变量
age = 18
level = 10
name = “shawn”
2.引用变量
print(age)
print(name)
3.变量名所在位置的意义
变量名在左边代表赋值
age = 18
左边的是赋值,右边的是取值
age = age + 1 # age = 18+1 = 19
变量的两大特征
一个变量的"id"和"type"
x = "aaa"
print(id(x)) #2282514548400
print(type(x)) #<class 'str'>
"id"一样,代表内存地址一样,指向的是同一个内存空间,值一定一样
x = 10
y = 10
print(id(x)) #140724873359904
print(id(y)) #140724873359904
print(type(x)) #<class 'int'>
print(type(y)) #<class 'int'>
# 如果值一样(即==成立),id可以不一样,也就说不同的内存空间里可以放相同的值
# >>> x="info==>name:egon age:18 >>>"
# >>> y="info==>name:egon age:18 >>>"
# >>>
# >>> x == y
# True
# >>> id(x)
# 2601843368304
# >>> id(y)
# 2601843368384
# >>> x is y
# False
# >>>
小整数池
在交互式模式下
- Python实现 int 的时候有个小整数池
- 为了避免因创建相同的值而重复申请内存空间所带来的效率问题
- Python解释器会在启动时创建出小整数池,范围是**[-5,256]**
- 该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被 GC 回收
"-5~256"都是同一个池子里拿的,所以内存地址相同
>>> y=4
>>> id(y)
4297641184
>>>
>>> x=3
>>> x+=1
>>> id(x)
4297641184
在 pycharm 中
- 但在pycharm中运行python程序,pycharm出于对性能的考虑,会扩大小整数池的范围
- 其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了
- 我们只需要记住这是一种优化机制,至于范围到底多大,无需细究
什么是常量?
常量指在程序运行过程中不会改变的量
为什么要有常量?
在程序运行过程中,有些值是固定的、不应该被改变,比如圆周率 3.141592653…
怎么使用常量?
在Python中没有一个专门的语法定义常量,约定俗成是用全部大写的变量名表示常量。如:PI=3.14159。所以单从语法层面去讲,常量的使用与变量完全一致。