变量
变量定义记录值的变化,量是可变的
格式:变量 = 值
变量的使用:
原则:先定义,后使用
变量的定义:(变量命名要 见名之意)
- 以字母,数字,下线组成
- 数字不能开头
- 变量名不能与 Python 关键字名字一致
变量的内存管理
内存管理:垃圾回收机制
垃圾:变量名个数为 0 这个变量值就无法访问。
引用计数:表示访问变量内存地址的次数
引用计数增加:
引用计数减少:
del :解除变量名 x 与 y 的关系
del x
变量值三大特征:
- id: 查看变量反映变量值的内存地址
- type:查看变量类型
- value:值
- is:比较左右两个值身份 id 是否相等
- id 相同内存地址会相同
- id 不相同内存地址可能会相同
- == :比较左右两个的值是否相等
常量
常量:不变的量
在程序运行过程中,有些值是固定的、不应该被改变(通常变量都是大写),
如 圆周率 3.1415926
数据类型
- 字符串:用引号包裹起来的内容,具有描述功能
- 数值类型:
-
- 作用:算术运算符,比较运算
- 整型:int
- 浮点型:folat
3.列表:[ ] 可以存储任意值用逗号隔开
-
- 作用:可以记录多个值
- 索引取值的是变量的下标:
- 正数从0开始取值
- 负数从-1开始取值
4.字典:用大括号表示{ keys:value }
-
- keys:键,为字符串类型(keys 是不可变的)
- value:值,可以是任意类型(value 是可变的)
- items: 键值对
- 字典取值:
- print {变量名" keys "}
5.布尔类型:
-
- True 表示真(1 表示 True)
- False 表示假(0,空,None 表示 False)
- 使用于 if 判断中
垃圾回收机制
垃圾回收机制(简称GC)是 Python 解释器自带一种机,专门用来回收不可用的变量值所占用的内存空间
引用计数:表示访问内存地址的次数
直接引用:直接引用指的是从栈区出发直接引用到的内存地址。
间接引用指的是从栈区出发引用到堆区后,再通过进一步引用才能到达的内存地址。
x = 10
l1 = [x, l2]
标记清除:当内存空间不足时 程序停止运行,标记清除会扫描栈区,如果没有被引用的会被清理掉,堆区的数据如果没有互相引用则计数为0那么就会被清除。
分代回收:在GC 多次扫描下会对变量分类,提高回收效率
栈区:存放变量名内存地址
堆区:存放变量值
栈区与堆区的关系就是变量名与内存地址值的引用传递的关系
接收用户输入
输入使用 input 函数 接收的所有内容都是字符串类型
格式化输出
- % 按照位置传值
- 字符串:%s
- 整数:%d
- 浮点数:%f
- 2个%表示一个%:%%
- str.format: { }(兼容性好)
- fstring ' '
运算符
算术运算符
- + 加
- - 减
- * 乘
- / 除
- ** 幂 - 平方
- // 取整除
- % 取模 - 返回除法的余数
赋值运算符
- = 给变量赋值
- += 加法赋值运算符
- -= 减法赋值运算符
- *= 乘法赋值运算符
- /= 除法赋值运算符
- %= 取模赋值运算符
- **= 幂赋值运算符
- //= 取整除赋值运算符
链式赋值:
- = 给变量赋值
- += 加法赋值运算符
- -= 减法赋值运算符
- *= 乘法赋值运算符
- /= 除法赋值运算符
- %= 取模赋值运算符
- **= 幂赋值运算符
- //= 取整除赋值运算符
链式赋值:
交叉赋值:
解压赋值:_ 表示占位符
比较运算符
- == 等于
- != 不等于
- > 大于
- < 小于
- >= 大于等于
- <= 小于等于
返回的是布尔型:
True:表示条件成立,执行代码
False:表示条件不成立,不执行代码
逻辑运算符
and
or
not
返回的是布尔型:
True:表示条件成立,执行代码
False:表示条件不成立,不执行代码
运算符优先级:
not > and > or
成员运算符
in
not in
返回的是布尔型:
True:表示条件成立,执行代码
False:表示条件不成立,不执行代码
身份运算符
is
not is
返回的是布尔型:
True:表示条件成立,执行代码
False:表示条件不成立,不执行代码
可变与不可变类型
可变类型:允许在原有内存空间上修改数据,修改后地址不变。
- 可变类型有:list,dict, 集合
不可变类型:不允许在原有的内存空间上修改数据,修改后内存地址会发生变化。
- 不可变类型:float ,int, str, tuple
if 判断语句