运算符用于对变量和值执行操作。在下面的示例中,我们使用 + 运算符将两个值相加:
print(10 + 5)
Python 将运算符分为以下几组:
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 身份运算符
- 成员运算符
- 位运算符
算术运算符
算术运算符用于对数字值执行常见的数学运算:
运算符 | 名称 | 示例 |
+ | 加法 | x + y |
- | 减法 | x - y |
* | 乘法 | x * y |
/ | 除法 | x / y |
% | 取模 | x % y |
** | 幂 | x ** y |
// | 地板除 | x // y |
赋值运算符
赋值运算符用于将值赋给变量:
运算符 | 示例 | 等同于 |
= | x = 5 | x = 5 |
+= | x += 3 | x = x + 3 |
-= | x -= 3 | x = x - 3 |
*= | x *= 3 | x = x * 3 |
/= | x /= 3 | x = x / 3 |
%= | x %= 3 | x = x % 3 |
//= | x //= 3 | x = x // 3 |
**= | x **= 3 | x = x ** 3 |
&= | x &= 3 | x = x & 3 |
= | x | |
^= | x ^= 3 | x = x ^ 3 |
>>= | x >>= 3 | x = x >> 3 |
<<= | x <<= 3 | x = x << 3 |
比较运算符
比较运算符用于比较两个值:
运算符 | 名称 | 示例 |
== | 等于 | x == y |
!= | 不等于 | x != y |
> | 大于 | x > y |
< | 小于 | x < y |
>= | 大于等于 | x >= y |
<= | 小于等于 | x <= y |
逻辑运算符
逻辑运算符用于组合条件语句:
运算符 | 描述 | 示例 |
and | 如果两个语句都为真 | x < 5 and x < 10 |
or | 如果其中一个语句为真 | x < 5 or x < 4 |
not | 反转结果,如果结果为真 | not(x < 5 and x < 10) |
身份运算符
身份运算符用于比较对象,不是比较它们是否相等,而是比较它们是否实际上是同一个对象,具有相同的内存位置:
运算符 | 描述 | 示例 |
is | 如果两个变量是同一个对象 | x is y |
is not | 如果两个变量不是同一个对象 | x is not y |
成员运算符
成员运算符用于测试一个序列是否出现在一个对象中:
运算符 | 描述 | 示例 |
in | 如果指定值在对象中,则返回 True | x in y |
not in | 如果指定值不在对象中,则返回 True | x not in y |
位运算符
位运算符用于比较(二进制)数字:
运算符 | 名称 | 描述 | 示例 |
& | 与 | 如果两个位都是1,则将每个位设置为1 | x & y |
或 | 如果两个位中的一个位为1,则将每个位设置为1 | ||
^ | 异或 | 如果两个位中的一个位为1,则将每个位设置为1 | x ^ y |
~ | 非 | 反转所有位 | ~x |
<< | 左移 | 通过从右侧推入零并让最左侧的位掉落,将左移 | x << 2 |
>> | 有符号右移 | 通过从左侧推入最左侧位的副本并让最右侧的位掉落,将右移 | x >> 2 |
运算符优先级
运算符优先级描述了操作执行的顺序。
示例,括号具有最高优先级,意味着必须首先评估括号内的表达式:
print((6 + 3) - (6 + 3))
示例,乘法 * 的优先级高于加法 +,因此在执行加法之前会执行乘法:
print(100 + 5 * 3)
优先级顺序在下表中描述,从最高优先级开始:
运算符 | 描述 |
() | 括号 |
** | 指数 |
+x -x ~x | 一元加法、一元减法和按位取反 |
* / // % | 乘法、除法、地板除法和取模 |
+ - | 加法和减法 |
<< >> | 按位左移和右移 |
& | 按位与 |
^ | 按位异或 |
== != > >= < <= is is not in not in | 比较、身份和成员运算符 |
not | 逻辑 NOT |
and | 逻辑 AND |
or | 逻辑 OR |
如果两个运算符具有相同的优先级,表达式将从左到右进行评估。
示例,加法 + 和减法 - 具有相同的优先级,因此我们从左到右评估表达式:
print(5 + 4 - 7 + 3)
最后
为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:
公众号搜索Let us Coding
,知乎,开源中国,CSDN,思否,掘金,InfoQ,简书,博客园,慕课,51CTO,helloworld,腾讯开发者社区,阿里开发者社区
看完如果觉得有帮助,欢迎点赞、收藏和关注