1.变量
1. 定义变量
语法:
变量名 = 数据
说明:
变量名 - 程序员自己命名
要求:1)标识符 2)不能是关键字
规范:1)见名知义 2)满足PEP8的命名规范(所有的字母都小写,多个单词之间用下划线隔开)
3)不使用系统提供的类型名、函数名和模块名
= - 赋值符号,固定写法
数据 - 任何有结果的表达式,包括:独立数据、运算表达式(除了赋值运算)、函数调用表达式
2.使用变量
变量中保存的数据能做什么,变量就能做什么
使用变量的时候其实是在使用变量中保存的数据
3.修改变量中的数据(重新给变量赋值)
python中同一个变量可以保存不同类型的值
python交换两个变量的值: 变量1, 变量2 = 变量2, 变量1
2. 变量赋值的原理
1.定义变量和给变量赋值的原理:
变量 = 数据
1)先在堆中申请内存(申请多大看被被赋值的数据需要多大内存)
2)将数据保存在内存区域中
3)让变量和保存数据的内存进行关联(让变量保存数据对应的内存地址)
2.id函数
id(变量) - 获取变量中关联的数据在内存中的地址
num = 10
print(id(num))
num = 20
print(id(num)) 这里的两个num的内存地址不一样
3. 数学运算符
数学运算符:+(加),-(减),*(乘),/(除),%(取余、取模),//(整除),**(幂运算)
1)+(加),-(减),*(乘),/(除) 和数学中的加减乘除功能一模一样
% - 求余数 数字1 % 数字2 -> 求数字1除以数字2的余数
# 应用1: 取整数的个位数或者低几位数
# 练习: 获取变量 num 的个位数
num = 8679
print(num % 10) # 9
print(num % 100) # 79
# 应用2:判断一个数是否能够被另外一个数整除
# 练习:判断num的是否是偶数
num = 2898
print(num % 2)
// - 求商取商的整数部分(向下取整/向小取整)
print(5//2) # 2
print(-5//2) # -3
print(3.9//3) # 1.0
# 应用:取定长数字的最高位
num = 367
print(num // 100) # 3
print(num // 10) # 36
4. 比较运算符
比较运算符(关系运算符):>, <, ==, >=, <=, !=
注意:1.所有比较运算的结果都是布尔值
2.数字数据不能和字符串数据进行比较
print(10 > 5) # True
print(10 < 5) # False
print(10 <= 5) # False
print(10 <= 10) # True
print(10 == 10) # True
print(10 != 5) # True
print(10 != 10) # False
python中支持比较运算符的连写来表示范围
5.逻辑运算符
and 的短路操作:
表达式1 and 表达式2 -> 如果表达式1的结果是False,表达式2不会执行
or 的短路操作
表达式1 or 表达式2 -> 如果表达式1的结果是True,表达式2不会执行
6.赋值运算符
赋值运算符: =、+=、-+、*=、/=、%=、//=、**=
1.所有的赋值运算符都是用来给变量赋值
2.所有的赋值运算符的左边都必须是变量
3.所有赋值运算符的右边都可以是任意有结果的表达式
7.运算符的优先级
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
有括号先算括号里面的
8. 位运算
位运算的特点:效率高,内存消耗少
位运算运算符: &(按位与) |(按位或) ^(异或) ~(按位取反) <<(左移) >>(右移)
# 所有的位运算都是直接操作数据在内存中存储的补码
1.按位与运算
数字1 & 数字2 - 两个都是1 结果就是1 否则为0
# 应用: 可以高效的判断数字的奇偶性。让被判断的数字和1进行按位与运算,结果是0就说明是偶数,否则是奇数
2.按位或运算
数字1 | 数字2 - 只要有一个是1结果就是1,两个都是0结果才是0
3.异或
数字1 ^ 数字2 - 不同为1,相同为0
4.按位取反
0变1 , 1变0
5.<< >>
# 应用: 高效率,快速的乘2或者2的次方数
数字1 << 数字2 - 数字1 // 2** 数字2
数字2 >> 数字2 - 数字* 2**数字2