1. 算术运算符
算术运算符通常由左向右结合,即2+3+4的计算顺序为(2+3)+4;
运算符 |
作用 |
说明 |
+ |
加 |
字符串相加即“合并字符串”,‘a’+‘b’得到‘ab’ |
- |
减、负号 |
无 |
* |
乘、str重复 |
‘ab’*3得到‘ababab’ |
/ |
除 |
4/3和4/3.0结果相同,都是1.3333… |
% |
取模(余数) |
25.5%2.25得到0.75; -25.5%2.25得到1.5 |
// |
整除 |
返回商的整数部分;4//3得1,4//3.0得1.0 |
* |
乘方 |
|
2. 比较运算符
运算符 |
作用 |
说明 |
== |
等于 |
可用于数、str、list等 |
!= |
不等于 |
|
<> |
不等于,类似于!= |
|
>、>= |
大于、大于等于 |
|
<、<= |
小于、小于等于 |
|
3. 赋值运算符
赋值运算由右向左结合,即a=b=c的处理方式为a=(b=c)
>>> a,b,c=1,2,3
>>> a=b=c #赋值过程:b=c(3),然后a=b,最终a和b都是得到的c的值
>>> print(a,b,c) # a的值不是2,而是3
3 3 3
运算符 |
作用 |
说明 |
= |
简单赋值 |
|
+= |
加等 |
c+=a 等价于c = c + a |
-= |
减等 |
|
*= |
乘等 |
|
/= |
除等 |
|
%= |
模等 |
|
**= |
幂等 |
|
//= |
整除等 |
|
4. 位运算符
运算符 |
作用 |
说明 |
& |
按位与 |
12&13返回12,即1100&1101=1100 |
| |
按位或 |
12|13返回13,即1100 |
^ |
按位异或 |
12^13返回1,即1100 |
~ |
按位取反 |
~x 类似于–x-1,即~60返回-61,见本表后面详细例子; |
<< |
左移 |
高位丢弃,低位补0。 6 << 4返回96,即110<<4得1100000,亦即6*(2**4) |
>> |
右移 |
低位丢弃,高位补0。 6>>2返回1,即110>>2得001 |
>>> bin(60) # 60的二进制数据为0011_1100
'0b00111100'
>>>
>>> ~60
-61
#
# ~60即~0011_1100得1100_0011,
# python把按位取反的值当补码解释(负数的补码为取反加1),所以返回-61.
#
# 注:-61的各码如下:
# 原码:1011_1101
# 反码:1100_0010(注,取反码时,符号位不取反)
# 补码:1100_0011,即60按位取反得的值,所以~60返回-61
5. 逻辑(布尔)运算符
运算符 |
作用 |
说明 |
and |
布尔与 |
x and y,会短路计算:x为False时,返回x,注意不是x的布尔值;x为True时,返回y,注意不是y的布尔值; |
or |
布尔或 |
x or y,会短路计算:x为False时,返回y,注意不是y的布尔值;x为True时,返回x,注意不是x的布尔值; |
not |
布尔非 |
x=true; not x; 返回False; |
>>> [] and {1:‘a’} # 空数组为假,返回空数组,注意返回的不是x的布尔值False
[]
>>> [] or {1:‘a’}# 空数组为假,返回y的值,注意不是y的布尔值;
{1:‘a’}
>>> not {1:‘a’} # not会返回布尔值
False
>>> not [] # not会返回布尔值
True
6. 成员运算符
运算符 |
作用 |
说明 |
in |
包含成员 |
在指定的序列中找到值,返回True |
not in |
不包含成员 |
|