资源链接:【Python学习笔记】第四章 运算符.pdf 226KB
算数运算符用于组织整数类型和浮点数类型的数据,分为一元运算和二元运算。
一元运算符有两个, +(正号) 和 -(负号)。
二元运算符如下表格
运算符 | 名称 | 例子 | 说明 |
---|---|---|---|
+ | 加 | 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 = 1
>>>a
1
>>>3 % 2
1
>>>3 // 2
1
>>>1.0 + True + 1
3.0
比较运算符用来比较两个表达式的大小,结果是布尔类型的数据,True 或 False。
运算符 | 名称 | 例子 | 说明 |
---|---|---|---|
== | 等于 | a == b | a == b 返回True,否则返回False |
!= | 不等于 | a != b | 与 == 相反 |
> | 大于 | a > b | a 大于 b 时返回True,否则返回False |
< | 小于 | a < b | a 小于 b 时返回True,否则返回False |
>= | 大于等于 | a >= b | a 大于等于 b 时返回True,否则返回False |
<= | 小于等于 | a <= b | a 小于等于 b 时返回True,否则返回False |
>>>1.0 == 1 # 浮点数与整数可以进行比较
True
>>>1.0 != 1
False
比较运算符可用于任意类型的数据,但是参与比较的两种数据类型要相互兼容,整数、浮点数和布尔这三种类型是相互兼容的。
比较字符串是否相等,是比较字符串的大小,一般比较 Unicode 编码大小,如果字符串的第一个字符比较不了大小,就比较第二个字符。
>>>a = 'hello'
>>>b = 'hello'
>>>a == b
True
>>>a = 'word'
>>>a > b
True
逻辑运算符用于对布尔型变量进行运算,结果也是布尔型。
运算符 | 名称 | 例子 | 说明 |
---|---|---|---|
not | 逻辑非 | not a | a 为 True 时,值为 False,a 为 False 时,值为True |
and | 逻辑与 | a and b | a、b 全为True 时, 计算结果为True, 否则为False |
or | 逻辑或 | a or b | a、b 全为 False 时, 计算结果为False,否则为True |
位运算是以 2 进制为单位进行运算,操作数和结果都是整数类型的数据。
运算符 | 名称 | 例子 | 说明 |
---|---|---|---|
~ | 位反 | ~x | 将 x 的值按位取反 |
& | 位与 | x & y | 将 x 与 y 按位进行位与运算 |
| | 位或 | x | y | 将 x 与 y 按位进行位或运算 |
^ | 位异或 | x ^ y | 将 x 与 y 按位进行位异或运算 |
>> | 右移 | x >> a | 将 x 右移 a 位,高位采用符号位补位 |
<< | 左移 | x << a | 将 x 左移 a 位, 低位用0补位 |
>>>a = 0b10110010 # 十进制数178
>>>b = 0b01011110 # 十进制数94
>>>a | b
245
>>>a & b
18
>>>a ^ b
236
>>>~a
-179
>>>a >> 2
44
>>>a << 2
712
>>>c = -20
>>>~c
19
运算符 | 名称 | 例子 | 说明 |
---|---|---|---|
+= | 加赋值 | 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 |
//= | 地板除法赋值 | 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 |
>>>a = 0b10110010
>>>b = 0b01011110
>>>a |= b
>>>a
245
数学中有先算乘除再算加减,先算括号里再算括号外的优先级顺序。在程序代码里也有优先级,和数学基本一致,但有的运算符在数学中并不存在。
优先级 | 运算符 | 说明 |
---|---|---|
1 | () | 小括号 |
2 | ** | 幂 |
3 | ~ | 位反 |
4 | +,- | 正负号 |
5 | *, /, %, // | 乘, 除, 取余, 地板除 |
6 | +, - | 加, 减 |
7 | <<, >> | 位移 |
8 | & | 位与 |
9 | ^ | 位异或 |
10 | | | 位或 |
11 | <, <=, >, >=, <>, !=, == | 比较 |
12 | not | 逻辑非 |
13 | and, or | 逻辑与, 逻辑或 |
在位运算优先级中,优先级从高到低大体是: 算术运算符 > 位运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符。
>>>1 - 2 * 2 # *优先级高于-,先计算2*2,结果为4, 在计算表达式1-4
-3