Python运算符
Python
常用运算符
名称 | 含义 | 例子 | 运行结果 |
---|---|---|---|
+ |
加 | 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
同级别运算符从左到右运算,这条规则有个例外,那就是赋值运算( = ),赋值运算是从右向左计算的。例如:
= b = c a
先将c的值,赋给b,再将b的值赋给a。
in
和 not in
运算符
我们可以使用 in
和 not in
操作符检查一个字符串是否存在于另一个字符串,in
和 not 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
类似的增强赋值运算符,除了+=
外,还有-=
,%=
,/=
等等。
小结
- Python中的运算符有多种,且有优先级的区别,其优先级和数据运算的优先级一致。
- 可使用增强运算符简化赋值声明语句。