一、数学运算符
数学运算符:
+, -, *, /, %(取余,取模), //(整除), **(幂运算)
-
- +,-, *, /,和数学一样
-
print(5+2, 5-2, 5*2, 5/2)
- 1
-
- %(取余,取模)
-
x % y 求x除以y的余数
-
print(5 % 2) # 1
- 1
-
应用1:判断一个数字能否被另一个数字整除
-
print(18 % 6)
- 1
-
应用2:取低位数(对10或10的n次方取余)
-
num = 1234 print(num % 10) # 4 print(num % 100) # 34
- 1
- 2
- 3
-
- //(整除)
-
x // y x除以y的商向小取整
-
print(5 // 2) # 2
- 1
-
应用:正整数去掉低位
-
num = 12345 print(num // 10) # 1234
- 1
- 2
-
练习:获取指定正整数的十,百位数
-
num = 3945 print(num % 100 // 10) # 4 print(num // 100 % 10) # 9
- 1
- 2
- 3
-
- **幂运算
-
x ** y 求x的y次方
-
print(2 ** 8) print(256 ** (1/4)) print(2.2 ** 2)
- 1
- 2
- 3
二、比较运算符
比较运算符:
<, >, >=, <=, ==(等于), !=(不等于)
-
重要结论:所有比较运算的结果都是布尔值
-
print(10 > 20) print(10 < 20) print(10 != 10)
- 1
- 2
- 3
-
-
Python中是比较运算符可以通过连写表示范围
-
age = 28 print(18 <= age <= 50)
- 1
- 2
-
三、逻辑运算符
逻辑运算符:and(与运算), or(或运算), not(非)
-
- and
-
应用:相当于生活中的并且,用于连接需要同时满足的多个条件 运算规则:T and T 是T, 有F就是F 条件1 and 条件2 True and True False and False T and F F and T
- 1
- 2
- 3
- 4
- 5
- 6
- 7
-
练习:写出能被3和7同时整除
-
num = 42 print(num % 3 == 0 and num % 7 == 0) print(num % 21 == 0)
- 1
- 2
- 3
-
- or
-
应用:相当于生活中的或者,用于连接需要多个条件中满足一个条件就行的情况 运算规则:有一个是T, 结果就是T,都为F才会F
- 1
- 2
-
练习:gpa高于4或score大于等于95
-
gpa = 5 score = 95 print(gpa > 4 or score >= 95)
- 1
- 2
- 3
-
练习:判断是否为闰年
-
year = 2021 print((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))
- 1
- 2
-
- not
-
应用:对指定条件进行否定 运算规则:T变F, F变T not F not T
- 1
- 2
- 3
- 4
-
练习:不能同时被3和7整除
-
num = 87 print(not num % 21 == 0)
- 1
- 2
-
- 短路操作
-
条件1 and 条件2 条件1是F,条件2不会执行 条件1 or 条件2 条件1是T,条件2不会执行
- 1
- 2
-
- 逻辑运算符的扩展 运算对象不是布尔值
-
数据1 and 数据2 数据1的布尔值是T,就是2,否则就是1 数据1 or 数据二 数据1的布尔值是T,就是1,否则是2 print(0 and 7) print(False and 9) print(7 and 9)
- 1
- 2
- 3
- 4
- 5
-
- 数据的布尔值(重点) 数据转成布尔的结果
Python中的所有类型的数据都有布尔值
所有零值和空值对应的布尔值是F,其他都是T
常见的零值和空值:0、0.0、0000、‘’、“”、{}、[]、()、None
-
print(bool(0), bool('')) print(bool(12), bool(-2.15), bool('abc'))
- 1
- 2
- 数据的布尔值(重点) 数据转成布尔的结果
四、赋值运算符
赋值运算符:
=、+=、-=、*=、/=、%=、//=、**=
(重要!)重要结论:所有的赋值运算的功能都是给变量赋值,不会产生一个结果。(赋值运算的表达式没有结果)
所有的赋值运算符的左边必须是变量
a = 10
10 > 20
# print(a = 10) # 报错
print(10 > 20)
- 1
- 2
- 3
- 4
-
- =
-
定义变量或者重新给变量赋值的时候使用
-
name = 20 num = 10 * 20
- 1
- 2
-
- +=、-=、*=、/=、%=、//=、**=
-
要求:赋值符号前面的变量必须是已经定义过变量
变量 += 数据 -> 变量 = 变量 + 数据 -
b = 10
b += 2
print(b) # 12b -= 3
print(b) # 9b **= 2
print(b) # 81b %= 2
print(b) # 1- 1
-
- 运算符的优先级
-
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
-
** > *、/、%、// > +、-
-
有括号先算括号里面的
-
b = 10 + 30 c = 10 < 5 * 3 # c = 10 < 15 -> c = True print(c)
- 1
- 2
- 3
五、分支结构
-
- 流程控制
- 顺序结构(默认) – 代码从上往下依次执行,每条语句执行一次
- 分支结构 – 代码的执行看条件是否成立(if语句)
- 循环结构 – 让代码重复(for、while)
-
- if分支结构
-
if单分支结构 满足条件执行某操作,条件不满足的时候操作就不执行
-
语法: if 条件语句: 代码段 说明: if 关键字,固定写法 条件语句 任何有结果的表达式,例如:数据,运算表达式(赋值除外) : 固定写法 代码段 就是和if保持一个锁紧的一条或多条语句 执行过程: 先判断条件语句是否为True(如果条件语句不是布尔,就转换成布尔再看), 如果True,就执行代码段,否则不执行
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
-
a = 40 a += 20 if a > 50: print('代1') print('代2') print('代3') print('代4')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
-
练习:如果指定的数是偶数就打印’偶数’
-
num = 22 if num % 2 == 0: print('偶数') if not num % 2: print('偶数')
- 1
- 2
- 3
- 4
- 5
- 6
-
练习:判断指定的数据是否是水仙花数
-
num = 153 # 水仙花数:1 ** 3 + 5 ** 3 + 3 ** 3 == num bai = (num // 100) ** 3 shi = (num // 10 % 10) ** 3 ge = (num % 10) ** 3 if bai + shi + ge == num: print('水仙花数')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
-
- if双分支结构 满足条件执行某操作,不满足执行另一个操作
-
语法: if 条件语句: 代码段1(满足才执行的代码) else: 代码段2(不满足才执行的代码) 代码段3(不管满不满足都执行)
- 1
- 2
- 3
- 4
- 5
- 6
-
练习:根据年龄打印成年未成年
-
age = 28 if age >= 18: print('成年') else: print('未成年')
- 1
- 2
- 3
- 4
- 5
-
3.if多分支结构 根据不同条件做不一样的事情
-
if 条件语句1: 代码段1 elif 条件语句2: 代码段2 elif 条件语句3: ... else: 代码段N 前提:多个条件中如果其中一个条件满足,其他的条件绝对不会满足
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
-
-
练习:将分数分成A(90以上),B(80,90),C(60,80),D(60以下)四个等级
-
score = 78 if score >= 90: print('A') elif score >= 80: print('B') elif score >= 60: print('C') else: print('D')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-