Table 2.1. Python运算符列表
运算符 | 描述 |
x+y,x-y | 加、减,“+”号可重载为连接符 |
x*y,x**y,x/y,x%y | 相乘、求平方、相除、求余,“*”号可重载为重复,“%”号可重载为格式化 |
<,<=,>,>=,==,<>,!= | 比较运算符 |
+=,-=,*=,/=,%=,**=,<<=,>>=,&=,^=,|= | 自变运算符 |
x|y | 按位或 |
x^y | 按位异或 |
x&y | 按位与 |
~x | 按位取反 |
x<<,x>>y | x向左或向右移y位 |
is, is not | 等同测试 |
in, not in | 是否为成员测试 |
or,and,not | 逻辑运算符 |
x[i],x[i:j],x.y,x(...) | 索引,分片,限定引用,函数调用 |
(...),[...],{...},'...' | 元组,列表,字典,转化为字符串 |
2.3.2. 运算符优先顺序
Table 2.2. 运算符优先顺序列表(从最高到最低)
运算符 | 描述 |
'expr' | 字符串转换 |
{key:expr,...} | 字典 |
[expr1,expr2...] | 列表 |
(expr1,expr2,...) | 元组 |
function(expr,...) | 函数调用 |
x[index:index] | 切片 |
x[index] | 下标索引取值 |
x.attribute | 属性引用 |
~x | 按位取反 |
+x,-x | 正,负 |
x**y | 幂 |
x*y,x/y,x%y | 乘,除,取模 |
x+y,x-y | 加,减 |
x<<y,x>>y | 移位 |
x&y | 按位与 |
x^y | 按位异或 |
x|y | 按位或 |
x<y,x<=y,x==y,x!=y,x>=y,x>y | 比较 |
x is y,x is not y | 等同测试 |
x in y,x not in y | 成员判断 |
not x | 逻辑否 |
x and y | 逻辑与 |
x or y | 逻辑或 |
lambda arg,...:expr | Lambda匿名函数 |
2.3.3. 真值表
Table 2.3.
对象/常量 | 值 |
"" | 假 |
"string" | 真 |
0 | 假 |
>=1 | 真 |
<=-1 | 真 |
()空元组 | 假 |
[]空列表 | 假 |
{}空字典 | 假 |
None | 假 |
2.3.4. 复合表达式
· 对于and,当计算a and b时,python会计算a,如果a为假,则取a值,如果a为真,则python会计算b且整个表达式会取b值。如:
· >>> a,b=10,20
· >>> a and b #a is true
· 20
· >>> a,b=0,5 #a is false
· >>> a and b
· 0
· 对于or,当计算a or b时,python会计算a,如果a为真,则整个表达式取a值,如果a为假,表达式将取b值。如:
· >>> a,b=10,20
· >>> a or b
· 10
· >>> a,b=0,5
· >>> a or b
· 5
· 对于not,not将反转表表达式的“实际值”,如果表达式为真,not为返回假,如为表达式为假,not为返回真。如:
· >>> not 2
· False
· >>> not 0
· True
· >>> not "test"
· False
· >>> not ""
· True
2.4. 给变量赋值
· 简单赋值,Variable(变量)=Value(值)。
· >>>a=1
· >>>b=2
· >>>print a,b
· 1 2
· 多变量赋值,Variable1,variable2,...=Value1,Value2,...
· >>>a,b,c=1,2,3
· >>>print a
· 1
· >>>print b
· 2
· >>>print c
· 3
多变量赋值也可用于变量交换,接上例:
>>>a,b,c=c,b,a
>>>print a
3
>>>print b
2
>>>print c
1
· 多目标赋值,a=b=variable
· >>> a=b=1
· >>> a
· 1
· >>> b
· 1
· >>> a=2
· >>> a
· 2
· >>> b
· 1
· 自变赋值,如+=,-=,*=等。在自变赋值中,python仅计算一次,而普通写法需计算两次;自变赋值会修改原始对象,而不是创建一个新对象。
转自:http://blog点163.com/zhulp0372@yeah/blog/static/11589447920117124348435/