python学习笔记22:基础之运算符
目录
- 1. 算术运算符
- 2. 比较运算符
- 3. 赋值运算符
- 4. 位运算符
- 5. 逻辑(布尔)运算符
- 6. 成员运算符
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 | 不包含成员 |