Python运算符
2022-11-22
常用运算符
| 名称 | 含义 | 例子 | 运行结果 |
|---|---|---|---|
+ | 加 | 3+1 | 4 |
- | 减 | 40-2 | 38 |
* | 乘 | 3*2 | 6 |
/ | 除 | 6/3 | 2 |
// | 取整除(地板除) | 8//5 | 1 |
** | 幂 | 2**3 | 8 |
% | 求余数 | 7%2 | 1 |
Python有各种运算符,我们可以使用这些运算符完成计算。
运算符的优先级别
Python按照运算符的有限级别计算表达式的值,比如:
| |
在上面的表达式中,应该先进行加运算还是乘运算?为了搞清楚这个问题,我们需要明白Python中运算符的优先级别,下表显示了运算符的优先级别,依次从高到底排列如下:
| 运算符 | 描述 | |
|---|---|---|
'expression,…' | 字符串转换 | |
{key:datum,…} | 字典显示 | |
{[expression,…]} | 列表显示 | |
() | 分组 | |
f(args…) | 函数调用 | |
x[index:index] | 列表切分 | |
x[index] | 元素下标 | |
x.attr | 调用对象属性 | |
** | 指数运算 | |
{^x} | 按位取反 | |
+x,-x | 正负号 | |
*,/,% | 乘、除、取余数 | |
+,- | 加,减 | |
<<,>> | 逐位左移,逐位右移 | |
& | 逐位求和,布尔“并” | |
^ | 逐位异或,布尔“非” | |
| ` | ` | 逐位或,布尔“或” |
<,<=,>,>=,<>,!=,== | 比较 | |
is,not is | 同一性测试 | |
in,not in | 成员资格判断 | |
not x | 布尔“非” | |
and | 布尔“并” | |
or | 布尔“或” | |
lambda | Lamada表达式 |
在上表中我们可以看到,乘法运算的级别高于加法,因此,先进行乘法运算,再进行加法运算,最后的计算结果为13。
| |
让我们再看下面的例子,以便演示优先顺序的另一个问题:
| |
上述表达式到底先进行加法运算还是减法呢?因为在运算符的优先级别表中我们看到加减运算的优先级别相同。当优先级别相同时,表达式从左向右计算,也就是说,上述的例子将先进行加法运算,再进行减法运算。
| |
同级别运算符从左到右运算,这条规则有个例外,那就是赋值运算( = ),赋值运算是从右向左计算的。例如:
| |
先将c的值,赋给b,再将b的值赋给a。
in 和 not in 运算符
我们可以使用 in 和 not in 操作符检查一个字符串是否存在于另一个字符串,in 和 not in 就是所谓的成员资格操作符(membership operator)。
| |
增强赋值运算符
增强赋值运算符能简化赋值声明语句,例如:
| |
使用增强赋值运算符,我们可以将上述代码变为:
| |
类似的增强赋值运算符,除了+=外,还有-=,%=,/= 等等。
小结
- Python中的运算符有多种,且有优先级的区别,其优先级和数据运算的优先级一致。
- 可使用增强运算符简化赋值声明语句。