我们编写的大多数语句都包含表达式;一个简单的表达式可以分解为运算符和操作数。
运算符的功能是完成某件事,它需要数据来进行运算,数据被称为操作数。
运算符与用法:
运算符 | 名称 | 说明 | 举例 |
+ | 加 | 两个对象相加 | 3+5,a+b |
- | 减 | 得到负数或一个数减去另一个数 | -4,3-1 |
* | 乘 | 两个数相乘或返回一个被重复若干次的字符串 | 2*6,la*3得到‘lalala' |
** | 幂 | 返回x的y次幂 | 3**4得81(即3*3*3*3) |
/ | 除 | x除以y | 整数除得整数,小数除得小数 |
// | 取整除 | 返回商的整数部分 | 4//3.0得到1.0 |
% | 取模 | 返回除法的余数 | 8%3得到2 |
<< | 左移 | 把一个数的二进制位左移一定数目 | 2<<2得到8 |
>> | 右移 | 把一个数的二进制位右移一定数目 | 11>>1得到5 |
& | 按位与 | 数的按位与 | 5&3得到1 |
| | 按位或 | 数的按位或 | 5|3得到7 |
^ | 异或 | 数的按位异或 | 5^3得到6 |
~ | 翻转 | x的按位翻转是-(x+1) | ~5得到-6 |
< | 小于 | 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价 | 5>3返回1,5<3返回0 |
> | 大于 | 与小于相反 | |
<= | | | |
>= | | | |
== | 等于 | 比较对象是否相等 | |
!= | 不等于 | 比较两个对象是否不相等 | |
not | 布尔非 | 如果x为False,返回True,为True,返回False | |
and | 布尔与 | | |
or | 布尔或 | | |
Python的运算符优先级
运算符 | 描述 |
lambda | lambda表达式 |
or | 布尔或 |
and | 布尔与 |
not | 布尔非 |
in,not in | 成员测试 |
is,isnot | 同一性测试 |
<,<=,>,>=,!=,== | 比较 |
| | 按位或 |
^ | 按位异或 |
& | 按位与 |
<<,>> | 移位 |
+,- | 加法与减法 |
*,/,% | 乘法、除法与取余 |
+x,-x | 正负号 |
~ | 按位翻转 |
** | 指数 |
x.attribute | 属性参考 |
x[index] | 下标 |
x[index:index] | 寻址段 |
f(arguments..) | 函数调用 |
(experession..) | 绑定或元组显示 |
[expression..] | 列表显示 |
{key:datum,...} | 字典显示 |
'expression,...' | 字符串转换 |
默认地,运算符优先级表决定了哪个运算符在别的运算符之前计算。如果你想要改变它们的计算顺序,你得使用小括号。
运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算;一些如赋值运算符那样的运算符是由右向左的。