Python运算符

常用运算符

名称含义例子运行结果
+3+14
-40-238
*3*26
/6/32
//取整除(地板除)8//51
**2**38
%求余数7%21

Python有各种运算符,我们可以使用这些运算符完成计算。

运算符的优先级别

Python按照运算符的有限级别计算表达式的值,比如:

1
>>> 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布尔“或”
lambdaLamada表达式

在上表中我们可以看到,乘法运算的级别高于加法,因此,先进行乘法运算,再进行加法运算,最后的计算结果为13。

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

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

1
>>> 3 + 4 - 2

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

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

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

1
a = b = c

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

innot in 运算符

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

1
2
3
4
5
>>> s1 = "Welcome"
>>> "come" in s1
True
>>> "come" not in s1
False

增强赋值运算符

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

1
2
3
4
>>> count = 1
>>> count = count + 1
>>> count
2

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

1
2
3
4
>>> count = 1
>>> count += 1
>>> count
2

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

小结

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