运算符包含:算术运算符、赋值运算符、比较运算符、位运算符、成员运算符、身份运算符
类型 | 内容 |
算术运算符 | +-*/ // % ** |
赋值运算符 | = += -= *= /= //= %= |
位运算符 | `&~<<>>^` |
关系运算符(比较运算符) | == != < > <= >= |
逻辑运算符 | and or not |
成员运算符 | is not in |
身份运算符 | is |
表达式:由变量、常量、运算符组成的式子。
算术运算符:
运算符 | 描述 | 实例 |
+ | 加 | 1+1 = 2 |
- | 减 | 2-1 = 0 |
* | 乘 | 2*2 = 4 |
/ | 除 | 4/2 = 2 |
// | 取整除 | 返回除法的整数部分(商)9//2 = 4 |
% | 去余数 | 返回除法的余数 9%2 = 1 |
** | 幂 | 次方、乘方,2**3 = 8 |
a = 10
b = 6
print(a + b) # 加
print(a - b) # 减
print(a * b) # 乘
print(a / b) # 除
print(a // b) # 取整除
print(a % b) # 取余
print(a ** b) # 幂
结果显示:
优先级:
运算符 | 描述 |
** | 幂(最高优先级) |
* / % // | 乘、除、取余、取整 |
+ - | 加减(最低优先级) |
赋值运算符:
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a+b 将a+b的运算结果赋值为c |
+= | 加法赋值运算符 | c += a 等效于c = c+a |
-= | 减法赋值运算符 | c -= a 等效于c = c-a |
*= | 乘法赋值运算符 | c *= a 等效于c = c*a |
/= | 除法赋值运算符 | c /= a 等效于c = c/a |
//= | 取整赋值运算符 | c //= a 等效于 c = c//a |
%= | 取模(余数)赋值运算符 | c %= a 等效于c = c%a |
**= | 幂赋值运算符 | c **= a 等效于c = c**a |
下面演示几个例子:
a = 2
print(a)
a += 2 # 自增
print(a)
a -= 2 # 自减
print(a)
比较运算符:
运算符 | 描述 |
---|---|
== | 检查两个操作数的值师傅 相等,如果是,则条件成立,返回 True |
!= | 检查两个操作数的值师傅 不相等,如果是,则条件成立,返回 True |
> | 检查左操作数的值是否 大于 右操作数的值,如果是,则条件成立,返回 True |
< | 检查左操作数的值是否 小于 右操作数的值,如果是,则条件成立,返回 True |
>= | 检查左操作数的值是否 大于或等于 右操作数的值,如果是,则条件成立,返回 True |
<= | 检查左操作数的值是否 小于或等于 右操作数的值,如果是,则条件成立,返回 True |
格式:表达式1 关系运算符 表达式2
功能:计算表达式1和表达式2的值
值:如果关系成立,则整个关系运算表达式的值为真,关系不成立,则整个关系运算表达式的值为假。
print(3 == 3) # 判断相等
print(3 != 2) # 判断不相等
print(3 >= 2)
print(3.0 == 3) # 浮点数和整数可以进行运算,结果为True
print(True == False) # bool值也可以进行运算,结果为False
print("hello" < "hell") # 字符串的比较运算:每个字符的ASCII码
逻辑运算符:
运算符 | 逻辑表达式 | 描述 |
---|---|---|
and | x and y | 只有x和y的值都为True,才会返回True,否则只要x或者y有一个值为False,就返回False |
or | x or y | 只要x或者y有一个值为True,就返回True,只有x和y的值都为False,才会返回False |
not | not x | 如果x为True,返回False,如果x为False,返回True |
# 与,并且and
print(1 == 1 and 2 == 2)
print('hello' and 'hi') # 短路运算 返回hi 前后两个表达式都为真,则返回后一个表达式
print(False and 'hi') # 前一个表达式为假,则直接返回前一个表达式False
print(0 and 1) # 前一个表达式为假,则直接返回前一个表达式0
# 或 or
print(1 != 1 or 1 == 1)
print(1 or 0)# 短路运算 表达式只要有一个为真,则返回这个真的表达式
# 非 not
print(not True)
优先级:
not > and > or
一元运算符的优先级较高
位运算符:
运算符 | 描述 | 功能 | 实例 |
---|---|---|---|
& | 按位与运算符 | 参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | 5&7 |
| | 按位或运算符 | 参与运算的两个值,如果两个相应位有一个为1,则该位的结果为1,否则为0 | 5|7 |
^ | 按位异或运算符 | 参与运算的两个值,如果两个相应位不同时,则该位的结果为1,否则为0 | 5^7 |
~ | 按位取反运算符 | 对数据的每个二进制位进行取反操作,把1变为0,把0变为1 | ~5 |
<< | 左移运算符 | 运算数的各个二进制位全部向左移动若干位,由符号右侧的数字指定移动的位数,高位丢弃,地位补0 | 9<<2 |
>> | 右移运算符 | 运算数的各个二进制位全部向右移动若干位,由符号右侧的数字指定移动的位数,低位丢弃,高位补0 | 9>>2 |
成员运算符:
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回True,否则返回False | 3 in(1,2,3)返回True |
not in | 如果在指定的序列中没有找到值返回True,否则返回False | 3 in(1,2,3)返回False |
print('12' in '123')
print('hi' not in 'hello')
身份运算符:
运算符 | 描述 |
---|---|
is | 判断两个标识符是否引用同一个对象,是的话返回真,否则返回假 |
is not | 判断两个标识符是否不是引用同一个对象,是的话返回真,否则返回假 |
a = 1
b = 1
print(a is b)
print(a is not b)
运算的优先级:
根据表格从上至下优先级依次递减
运算符 | 描述 |
---|---|
** | 幂(最高优先级) |
~ + - | 按位取反、一元运算符(正负号) |
* / % // | 乘、除、取余、取整 |
+ - | 加、减 |
<< >> | 左移、右移 |
& | 按位与 |
` | ^` |
> < >= <= | 比较运算符 |
== != | 等于运算符 |
= += -= *= /= %= //= **= | 赋值运算符 |
is is not | |
in not in | |
not or and | 逻辑运算符 |