一、变量的含义
# 变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等等
二、使用变量的目的
# 为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的
详细地说:
# 程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态,以及状态的变化。
三、变量的使用
1.变量基本使用
# 原则:先定义,后引用
name = 'Jason' # 记下人的名字为'Jason'
sex = '男' # 记下人的性别为男性
age = 18 # 记下人的年龄为18岁
salary = 30000.1 # 记下人的薪资为30000.1元
print(name, sex, age, salary)
2.垃圾回收机制
# 内存管理:垃圾回收机制
# 垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾
# 引用计数增加
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)
四、变量的三大组成部分
# 变量有三大组成部分:
# I:变量名 => 是指向等号右侧值的内存地址的,用来访问等号右侧的值
# II:赋值符号:将变量值的内存地址绑定给变量名
# III:变量值:代表记录的事物的状态
五、变量名的命名规则
# 原则:变量名的命名应该见名知意
# 如果我们要存储的数据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
# 正确示范如下
age_of_jason=31
page1='首页'
ps:不要用拼音,不要用中文,在见名知意的前提下尽可能短
mingzi='jh'
名字='jh'
print(名字)
六、变量名的命名风格
# 风格一:驼峰体
AgeOfTony = 56
NumberOfStudents = 80
# 风格二:纯小写下划线(在python中,变量名的命名推荐使用该风格)
age_of_tony = 56
number_of_students = 80
七、变量值的三大特征
# 变量的值具备三大特性
name='jh'
# id:反映的是变量值的内存地址,内存地址不同id则不同
print(id(name))
# type:不同类型的值用来表示记录不同的状态
print(type(name))
# value:值本身
print(name)
# is与==
# is:比较左右两个值身份id是否相等
# ==:比较左右两个值他们的值是否相等
id不同的情况下,值有可能相同,即两块不同的内存空间里可以存相同的值
id相同的情况下,值一定相同,x is y成立,x == y也必然成立
>>> 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
八、小整数池概念
# 了解:小整数池[-5,256]
# 从python解释器启动那一刻开始,就会在内存中事先申请
# 好一系列内存空间存放好常用的整数
# 在交互式模式下
Python实现int的时候有个小整数池。为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器会在启动时创建出小整数池,范围是[-5,256],该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被GC回收
每创建一个-5到256之间的整数,都是直接从这个池里直接拿走一个值,例如
'''
>>> y=4
>>> id(y)
4297641184
>>>
>>> x=3
>>> x+=1
>>> id(x)
4297641184
'''
'''
>>> 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)
'''
# 在pycharm中
但在pycharm中运行python程序,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化机制,至于范围到底多大,无需细究
九、常量
# 1、什么是常量?
常量指在程序运行过程中不会改变的量
# 2、为什么要有常量?
在程序运行过程中,有些值是固定的、不应该被改变,比如圆周率 3.141592653...
# 3、怎么使用常量?
在Python中没有一个专门的语法定义常量,所以单从语法层面去讲,常量的使用与变量完全一致。
AGE_OF_ALEX = 73 # 小写字母全为大写代表常量,这只是一种约定、规范
AGE_OF_ALEX = 74
print(AGE_OF_ALEX)