1. 定义变量
语法:变量名 = 数据
说明:变量名 - 程序员自己命名
要求:1)标识符 2)不能是关键字
规范:1)见名知义 2)满足PEP8的命名规范(所有字母都要小写,多个单词之间用下划线隔开) 3)不使用系统提供的类型名,函数名和模块名
= —— 赋值符号,固定写法
数据 —— 任何有结果的表达式,包括:独立数据、运算表达式(除了赋值运算)、······
2.使用变量
变量中保存的数据能做什么,变量就能做什么
使用变量的时候其实是在使用变量中保存的数据
3.修改变量中的数据(重新给变量赋值)
变量 = 新值
python中同一个变量可以保存不同类型的值
4.同时定义多个变量
- 同时给不同的变量赋不同的值:变量名1,变量名2,变量名3,··· = 数据1,数据2,数据3,···
- python交换两个变量的值:变量1,变量2 = 变量2,变量1
- 同时给不同的变量赋相同的值:变量1 = 变量2 = 变量3 = ···· = 数据
- 注意:没有赋值的变量不能使用
02 变量赋值的原理
1.定义变量和给变量赋值的原理
- 先在堆中申请内存(申请多大看被赋值的数据需要多大内存)
- 将数据保存在内存区域
- 让变量和保存数据的内存进行关联(让变量保存数据对应的内存地址)
2. id函数
id(变量) - 获取变量中关联的数据在内存中的地址
04 数学运算符
python支持的运算符: 数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算符
1.数学运算符: +,-, *, /, %(取余、取模), //(整除), **(幂运算)
+, -, *, / 和数学中的加减乘除一样
-
% - 取余数
数字1 % 数字2 -> 求数字1除以数字2的余数
// - 求商去商的整数部分(向下取整/向小取整)
** - m**n - 计算m的N次方
05 比较运算符
比较运算符(关系运算符):>, <, ==,>=, <=, !=
注意:所有比较运算的结果都是布尔值
数字数据不能和字符串数据比较
python中支持比较运算符的连写来表示范围
06 逻辑运算符
python中俄的逻辑运算符: and(逻辑与)、or(逻辑或)、not(逻辑非)
-
and
- 运算规则:
- 操作对象都是布尔值:两个都是True结果才是true,只要有一个是False就是False
- 应用场景:希望两个或者多个条件同时满足才做什么事情,就使用逻辑与运算。相当与生活中的并且
- 运算规则:
-
or
- 运算规则
- 操作对象都是布尔值:两个都是False结果才是False,只要有一个是True结果就是True
- 应用场景:希望两个或者多个条件只要有一个满足就可以使用逻辑或运算。相当于生活中的或者
- 运算规则
-
not
- 运算规则:True 变 False, False 变 True
- 应用场景:不满足某个条件就做什么,就用Not
-
操作对象不是布尔的时候
逻辑运算符语法上可以操作任何数据
-
数据1 and 数据2 ----> 如果数据1的布尔值是True,结果是数据2;
如果数据1的布尔值是False,结果就是数据1
-
数据1 or 数据2 ----> 如果数据1的布尔值是True,结果是数据1;
如果数据1的布尔值是False,结果是数据2
补充:数据的布尔值怎么确定 - 所有为零为空的值都是False,其他数据的布尔都是True
-
短路操作
- and 的短路操作:
- 表达式1 and 表达式2 --> 如果表达式1的结果是False,表达式2不会执行
- or 的短路操作:
- 表达式1 or 表达式2 --> 如果表达式1的结果是True,表达式2不会执行
- and 的短路操作:
07 赋值运算符
赋值运算符:=、 +=、 -=、 *=、 /=、 %=、 //=、 **=
- 所有的赋值运算符都是用来给变量赋值的
- 所有的赋值运算符的左边都必须是变量,复合赋值运算符左边的变量必须是已经赋值过的变量
- 所有赋值运算符的右边都可以是任意有结果的表达式
运算符的优先级:
数学运算符 > 比较预算符 > 逻辑运算符 > 赋值运算符(最低)
有括号先算括号里的
08 位运算
位运算的特点:效率高、内存消耗少
位运算运算符: &(按位与)、|(按位或)、^(异或)、~(按位取反)、>>(右移)、<<(左移)
所有的位运算都是直接操作数据在内存中的存储的补码
- &(按位与)
- 数字1 & 数字2 ------两个都是1结果就是1,否则结果0
应用:判断数字的奇偶性
让被判断的数字和1进行按位与运算,结果如果是0说明是偶数否则是奇数
- |(按位或)
- 数字1 | 数字2 -------只要有一个是1就是1,两个都是0结果才是0
- ^(异或)
- 数字1 ^ 数字2 -------不同为1,相同为0
- ~(按位取反) ------- 0变1,1变0
- ~ 数字
- << 、>>
- 数字1 >> 数字2 ----- 数字1 // 2**数字2
- 数字1 << 数字2 ------数字 * 2 ** 数字2
- 应用:高效率、快速的乘2或者2的次方数