Python运算符

Python
作者

yangjh

发布于

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按照运算符的有限级别计算表达式的值,比如:

>>> 3 * 4 + 1

在上面的表达式中,应该先进行加运算还是乘运算?为了搞清楚这个问题,我们需要明白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。

>>> 3 * 4 + 1
>>> 13

让我们再看下面的例子,以便演示优先顺序的另一个问题:

>>> 3 + 4 - 2

上述表达式到底先进行加法运算还是减法呢?因为在运算符的优先级别表中我们看到加减运算的优先级别相同。当优先级别相同时,表达式从左向右计算,也就是说,上述的例子将先进行加法运算,再进行减法运算。

>>> 3 + 4 - 2
>>> 5

同级别运算符从左到右运算,这条规则有个例外,那就是赋值运算( = ),赋值运算是从右向左计算的。例如:

a = b = c

先将c的值,赋给b,再将b的值赋给a。

innot in 运算符

我们可以使用 innot in 操作符检查一个字符串是否存在于另一个字符串,innot in 就是所谓的成员资格操作符(membership operator)

>>> s1 = "Welcome"
>>> "come" in s1
True
>>> "come" not in s1
False

增强赋值运算符

增强赋值运算符能简化赋值声明语句,例如:

>>> count = 1
>>> count = count + 1
>>> count
2

使用增强赋值运算符,我们可以将上述代码变为:

>>> count = 1
>>> count += 1
>>> count
2

类似的增强赋值运算符,除了+=外,还有-=%=/= 等等。

小结

  1. Python中的运算符有多种,且有优先级的区别,其优先级和数据运算的优先级一致。
  2. 可使用增强运算符简化赋值声明语句。