算术运算符
运算符 | 运算符名 | 示例 | 结果 |
+ | 正号 | +a | a本身 |
- | 负号 | -a | a的相反数 |
+ | 加法 | a + b | a 加 b |
- | 减法 | a - b | a 减 b |
* | 乘法 | a * b | a 乘以 b |
/ | 除法 | a / b | a 除以 b |
// | 向下取整除法 | a // b | a 除以 b 后向下取整 |
% | 模 | a % b | a 除以 b的余数 |
** | 幂 | a**b | a的b次幂 |
a = -20
print(+a)
print(-a)
print(3 * 4)
print(2 ** 3)
print(1 / 0) # error
模运算
模运算就是求余数,也即是求余运算
余数的正负取决于 % 右边数字的正负
余数的绝对值必须小于右边操作数的绝对值,余数不能小于除数的绝对值
print(10 % 7) # 3
# 10 = -7 * -2 + -4
print(10 % -7) # -4
# -10 = 7 * -2 + 4
print(-10 % 7) # 4
# -10 = -7 * 1 + -3
print(-10 % -7) # -3
练习
提示用户输入秒数,屏幕打印出 m分s秒
s = int(input('请输入秒 '))
minutes = s // 60
seconds = s % 60
print(f'{s}秒 == {minutes}分 {seconds}秒')
赋值运算符
= | a = b | a = 10 b = a |
+= | a += b | a = a + b |
-= | a -= b | a = a - b |
*= | a *= b | a = a * b |
/= | a /= b | a = a / b |
%= | a %= b | a = a % b |
**= | a **= b | a = a ** b |
python中没有++a和a++这种语法
运算符的优先级
1 | ** | 求幂 |
2 | +x、-x、~x | 正、负、按位取反 |
3 | *@ / // % | 乘法、矩阵乘法、除、向下取整、求余数 |
4 | +- | 加、减 |
5 | << >> | 位移 |
6 | & | 按位与 |
7 | ^ | 按位异或 |
8 | | | 按位或 |
9 | innot inis is not < <= > >= != == | 成员检测、身份检测、比较 |
10 | not x | 取反 |
11 | and | 与 |
12 | or | 或 |
13 | ifelse | 条件 |
14 | lambda | |
15 | := | 赋值 |
print(4 + 2 - 1)
print(4 * 3 / 2)
print(6 + 5 * 4 - 3 / 2)
print(100 / 20 ** 2)
我们可以使用小括号调整优先级
a, b, c = 1, 2, 3
print(a + b * c)
print((a + b) * c)
a, b = 10, 20
print(((a/b) * b) + (a % b))
x, y = 8, 2
x, y = y + 1, x + 3
print(x, y)
比较运算符
== | a == b | a等于b |
!= | a != b | a不等于b |
< | a < b | a小于b |
> | a > b | a大于b |
<= | a >= b | 小于或等于 |
>= | a <= b | 大于或等于 |
一个等于号 是赋值
两个等于号 是判断是否相等
比较运算的结果是布尔类型的值,只有两种True和False,真、假
print(str(True) == 'True')
print(str(False) == 'False')
print(int(True))
print(int(False))
print(float(True))
print(float(False))
bool类型和数值进行运算时候,True为1,False为0
print(10 + True)
print(10 * False)
print(10.0 + True)
print(10.0 + False)
print('10' + True) # TypeError: can only concatenate str (not "bool") to str