目录
一、数学运算符
数学运算符:+(加)、-(减)、*(乘)、/(除)、%(取余、取模)、//(整除)、**(幂运算)
运算符 | 描述 | 示例 |
---|---|---|
+ | 加 | 1+2 输出结果为 2 |
- | 减 | 2-1 输出结果为 1 |
* | 乘 | 2*3 输出结果为 6 |
/ | 除 | 5/2 输出结果为 2.5 |
% | 取模/求余 - 返回除法的余数 | 5%2 输出结果为 1 |
// | 整除 - 返回商的整数部分 | 5//2 输出结果为 2 |
** | 幂 - x ** y 返回x的y次幂 | 8**(1/3) 输出结果为 2 |
注意:
1. /(除法)的运算结果一定是小数,其他运算符的运算结果看运算对象的类型(运算对象中只要有一个是浮点数,结果就是浮点数,如果都是整数结果就是整数)
print(5 + 2) # 输出为 7
print(5 - 2) # 输出为 3
print(5 * 2) # 输出为 10
print(5 / 2) # 输出为 2.5
print(6 / 2) # 输出为 3.0
print(5.5 + 5.5) # 输出为 11.0
2. %(取模)的应用场景
- 判断一个数是否能够被另外一个数整除。(判断余数是否为0)
print(10 % 3) # 输出为1 print(9 % 3) # 输出为0
- 取整数的低位数,去掉高位数。(对10或者10的N次方取余,结果一定是这个整数的后N位数)
num = 2892867 print(num % 10) # 输出为7 print(num % 100) # 输出为67 print(num % 1000) # 输出为867
3. //(整除)—— 求商,商向小取整(取和商相邻的两个整数中较小的那个)
print(5 // 2) # 2
print(1.8 // 2) # 0.0
print(-5 // 2) # -3
应用场景:
- 计算生活逻辑中完整个数(计算一个数中有多少个完整的另外一个数)。
# 案例:100元可以买多少个苹果(单价3.5元)? print(100 // 3.5) # 28.0
- 去掉整数的低位数,保留高位数(对10的N次方进行整除操作)
num = 28934 print(num // 10) # 2893 print(num // 100) # 289 print(num // 1000) # 28
练习:
# 练习:写程序获取任意一个正整数的十位数
num = 12562
# 方法1
print(num // 10 % 10)
# 方法2:
print(num % 100 // 10)
4. **(幂运算)
print(8 ** (-1/3)) # 0.5
print(2 ** -2) # 0.25
print(4 ** (1/2)) # 2.0
二、比较运算符
比较运算符:>(大于)、<(小于)、==(等于)、!=(不等于)、>=(大于等于)、<=(小于等于)
1. 所有比较运算符的运算结果都是布尔值
print(10 > 20) # False
print(10 < 100) # True
print(10 == 20) # False
num = 28
print(num % 2 == 0) # True
2. python的比较运算符支持连写表示范围
age = 22
print(18 <= age <= 30)
三、逻辑运算符
逻辑运算符:and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算)
运算符 | 描述 | 运算规则 | 实例 |
---|---|---|---|
and | 用于连接需要同时成立的两个条件,相当于生活中的'并且' | 条件1 and 条件2 如果两个都是True结果就是True,只要有一个是False结果就是False | True and True -> True True and False -> False False and True -> False False and False -> False |
or | 如果两个条件中只要有一个条件成立就行,就用or连接,相当于生活中的'或者' | 条件1 or 条件2 如果有一个是True结果就是True,两个都是False结果才是False | True and True -> True True and False -> True False and True -> True False and False -> False |
not | 对条件进行否定,条件正向写很麻烦很复杂,反向却很简单,就条件反向写然后在前面加not | not 条件 | not True -> False not False -> True |
and案例:
# 案例:写程序判断num是否能够同时被3和7整除
num = 21
# num是否能够被3整除: num % 3 == 0
# num是否能够被7整除: num % 7 == 0
print('num是否能同时被3和7整除:', num % 3 == 0 and num % 7 == 0) # True
or案例:
# 练习1:写程序判断num是否能够被3或者7整除
num = 829
print(num % 3 == 0 or num % 7 == 0)
# 练习2:判断num是否是一个大于10的偶数
num = 99
# num大于10:num > 10
# num是否是偶数:num % 2 == 0
print(num > 10 and num % 2 == 0)
# 练习3:判断year对应的年份是否是闰年
year = 1999
# 世纪闰年(能被400整除的年):year % 400 == 0
# 普通闰年:能被4整除但是不能被100整除: year % 4 == 0 and year % 100 != 0
print((year % 400 == 0) or (year % 4 == 0 and year % 100 != 0))
not 案例:
# 案例:判断age是否不大于18
age = 19
print(not age > 18) # False
print(age <= 18)
# 案例:判断year是否不是闰年
print(not ((year % 400 == 0) or (year % 4 == 0 and year % 100 != 0))
四、赋值运算符
赋值运算符:=、+=、-=、*=、/=、%=、//=、**=
赋值运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | x = y x = y |
+= | 加赋值 | x += y x = x + y |
-= | 减赋值 | x -= y x = x - y |
*= | 乘赋值 | x *= y x = x * y |
/= | 除赋值 | x /= y x = x / y |
%= | 取模赋值 | x %= y x = x % y |
//= | 整除赋值 | x //= y x = x // y |
**= | 幂赋值 | x **= y x = x ** y |
注意:
1. 所有的赋值运算符作用:将数据保存到变量中(给变量赋值),所以赋值符号的前面必须是变量名
所有的赋值运算表达式都没有结果,无法提供数据
2. 变量 += 数据——先将变量中的数据取出来,和后面的数据进行加法运算,然后将计算结果重新 赋值给变量
**复合的赋值运算法前面的变量必须是已经定义过的变量**
a = 100
a += 10
print(a) # 110
a -= 20
print(a) # 90
a *= 2
print(a) # 180
a %= 2
print(a) # 0
五、三目运算符
1. C语言的三目运算符:
条件语句?值1:值2
先判断条件语句是否为真,如果是整个运算表达式的结果就是值1否则结果是值2
2. python的三目运算符:
值1 if 条件语句 else 值2
先判断条件语句是否成立,如果是整个运算表达式的结果就是值1否则结果是值2
# 案例
age = 8
print('成年' if age >= 18 else '未成年')
# 练习
nums = [19, 8, 78, 93, 37, 82, 19]
result = [i * 2 if i % 2 else i // 2 for i in nums]
print(result) # [38, 4, 39, 186, 74, 41, 38]
六、运算符的优先级
- 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
- ** > *、/、%、// > +、-
- not > and > or
- 有()先算()里面的