Python3 运算符
Python3 学习笔记 · 整理自菜鸟教程
一句话
运算符对操作数执行运算,Python 分为算术、比较、赋值、逻辑、位、成员和身份七大类。
要点
- 算术运算符:
+ - * / % ** //。/结果为浮点,//向下取整,**是幂。 - 比较运算符:
== != > < >= <=,返回布尔值。 - 赋值运算符:
= += -= *= /= //= %= **=,以及海象运算符:=。 - 逻辑运算符:
and、or、not,有短路特性。 - 位运算符:
& | ^ ~ << >>,按二进制位运算。 - 成员运算符:
in、not in,判断元素是否在序列/集合中。 - 身份运算符:
is、is not,比较是否为同一对象(比内存地址)。 - 优先级:
**> 一元 >* / // %>+ -> 比较 >not>and>or。不确定就加括号。
语法 / 常用方法
| 运算符 | 说明 | 示例 | 结果 |
|---|---|---|---|
+ |
加 | 3 + 2 |
5 |
- |
减 | 3 - 2 |
1 |
* |
乘 | 3 * 2 |
6 |
/ |
除(浮点) | 7 / 2 |
3.5 |
// |
整除(向下取整) | 7 // 2 |
3 |
% |
取模 | 7 % 2 |
1 |
** |
幂 | 2 ** 3 |
8 |
== |
等于 | 1 == 1 |
True |
!= |
不等于 | 1 != 2 |
True |
and |
逻辑与(短路) | True and False |
False |
or |
逻辑或(短路) | True or False |
True |
not |
逻辑非 | not True |
False |
& | ^ ~ |
位与/或/异或/取反 | 6 & 3 |
2 |
<< >> |
左移/右移 | 1 << 2 |
4 |
in |
成员判断 | 'a' in 'abc' |
True |
is |
身份判断 | a is b |
布尔 |
:= |
海象赋值表达式 | (n := 5) |
5 |
代码示例
1 | |
易错点
/总是返回 float:4 / 2是2.0,要整数用//。- 负数整除方向:
//向下取整,-7 // 2 == -4,不是-3。 ==与is不同:==比值,is比身份;小整数和短字符串因缓存可能表现一致,别依赖。and/or返回操作数:[] or 0是0,1 and 2是2,不一定是布尔。- 短路副作用:依赖短路时函数可能不被调用,别在右侧写必需执行的逻辑。
- 优先级陷阱:
not a == b等价not (a == b),而位运算优先级低于比较,容易写错。 - 海象运算符需括号:赋值表达式在条件中一般要加括号
(n := ...)。 - 可变对象身份:两个内容相同的列表
is为False,判断内容用==。