- 算术运算符
- 比较运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 假设有变量
a = 1
,b = 2
符号 | 含义 | 示例 |
---|---|---|
| 加-两个对象相加,双目运算符 |
|
| 减-两个对象相减,双目运算符 |
|
| 乘-两个对象相乘,双目运算符 |
|
| 除-两个对象相除,结果为浮点值,双目运算符 |
|
| 整除-两个对象相除,结结果为整数,双目运算符(c语言式除法) |
|
| 取模-取两个对象相除后的余数,双目运算符 |
|
| 幂运算-结果为x的y次幂 |
|
| 括号-在一个算式中先算括号内的表达式 |
|
操作 | 示例 |
---|---|
单个变量赋值 | a = 1,把1赋给变量a |
多变量同时赋值 | a, b, c = 1, 2.2, "hello" ,按照变量从左往右的顺序,在赋值运算符右侧以此匹配 |
多变量赋相同值 | a = b = c = 123 ,从右往左依次赋值 |
符号 | 含义 | 示例 |
---|---|---|
| 加法赋值运算符 | a += b,等价于a = a + b |
| 减法赋值运算符 | a -= b,等价于a = a - b |
| 乘法赋值运算符 | a *= b,等价于a = a * b |
| 除法赋值运算符 | a /= b,等价于a = a / b |
| 整除赋值运算符 | a //= b,等价于a = a// b |
| 取模赋值运算符 | a %= b,等价于a = a % b |
| 幂赋值运算符 | a **= b,等价于a = a ** b |
| 海象运算符 (python3.8新增) | b = 10 if (a := b) > 9 :print(a) ,把计算语句的结果赋值给变量,然后,变量可以在代码块里执行运用. |
- 复合赋值运算的注意点:
例如:有表达式:
b = 10
b += 1 + 2
问:执行完后b的值为多少
# 复合赋值注意点代码验证 # 由于+=和右面的+优先级很难区分 # 所以我们采取*=和+,如下: num = 10 num *= 1 + 2 print("num的值为%d" % num)
输出结果为:num的值为30
所以我们便有如下结论:对于复合赋值运算右侧嵌套表达式的算式,采取优先计算右侧表达式,再执行复合赋值运算
符号 | 含义 | 示例 |
---|---|---|
| 等于号,判断两个对象是否相等 | 1 == 1,返回结果为True |
| 不等于号,判断两个对象是否不相等 | 1 != 1,返回结果为False |
| 大于号,判断左操作对象是否大于右操作对象 | 1 > 1,返回结果为False |
| 小于号,判断左操作对象是否小于右操作对象 | 1 < 1,返回结果为False |
| 大于等于号,判断左操作对象是否大于等于右操作对象 | 1 >= 1,返回结果为True |
| 小于等于号,判断左操作对象是否小于等于右操作对象 | 1 <= 1,返回结果为True |
- 注意点:由示例可以看出,进行比较运算的返回值为布尔类型
符号 | 含义 | 示例 |
---|---|---|
| 与,当左右操作对象全为True时,返回True;只要有一个为False,结果为False | 1 and 0,返回结果为False |
| 或,左右操作对象,有一个为True,返回结果为True;全为False,结果为False | 1 or 0,返回结果为True |
| 非,返回与操作对象相反的布尔值 | not 1,返回结果为False |
###3.6、位运算符
按位运算:对操作对象对应的二进制数的每一位进行与操作符对应的逻辑运算,并与运算结果的每一位对应
- 按位与,符号:&
- 按位或,符号:|
- 按位异或,符号:^
- 按位取反,符号:~
- 左移运算符:<<
- 右移运算符:>>
# 按位运算示例 a = 15 # 对应二进制为:00001111 b = 8 # 对应二进制为:00001000 print(a & b) #结果为:00001000,十进制8 print(a | b) #结果为:00001111,十进制15 print(a ^ b) #结果为:00000111,十进制7 print(~ a) #结果为:11110000,十进制-16 print(~ b) #结果为:11110111,十进制-9 print(a >> 2)#结果为:00000011,十进制3 print(b << 2)#结果为:00100000,十进制32
输出结果为:
8
15
7
-16
-9
3
32
- 左移右移相当于乘2除2,左移右移几,就是乘几个2或除以几个2
in
,如果左操作对象在右操作对象内包含,则返回True,否则返回Falsenot in
,如果左操作对象不在右操作对象内包含,则返回True,否则返回False
a = "hello,world" b = "hello" c = "." print(b in a) print(c not in a)
输出结果:
True
True
is
,判断左右标识符是否引用自同一个对象is not
,判断左右标识符不是否引用自同一个对象
a = 1 b = 1 c = "hello" print(a is b) print(a is not c)
输出结果:
True
True
由于此处仅列举的常用的运算符,因为无法对python运算符的优先级进行列举,具体请点击以下链接查看
这是一个链接 zhangchenxiang_
zhangchenxiang_