1、算术运算符
用于处理四则运算的符号
运算符 | 描述说明 | 示例 | 结果 |
+ | 加法 | 1+1 | 2 |
- | 减法 | 1-1 | 0 |
* | 乘法 | 2*3 | 6 |
/ | 除法 | 10/2 | 5.0 |
// | 整除 | 10//3 | 3 |
% | 取余 | 10%3 | 1 |
** | 幂运算 | 2**4 | 16 |
2、算术运算符的使用
print('加法:',1+1) # 加法: 2
print('减法:',1-1) # 减法: 0
print('乘法:',2*3) # 乘法: 6
print('除法:',10/2) # 除法: 5.0
print('整除:',10//2) # 整除: 5
print('取余:',10%3) # 取余: 1
print('幂运算:',2**4) # 2*2*2*2*2 幂运算: 16
print(10/0) # ZeroDivisionError:division by zero
3、赋值运算符
赋值运算符的优先级由高到低的是:
第一级:**
第二级: * 、/、%、//
第三级:+、-
运算符 | 描述说明 | 示例 | 展开形式 |
= | 简单的赋值运算 | x=y | x=y |
+= | 加赋值 | x+=y | x=x+y |
-= | 减赋值 | x-=y | x=x-y |
*= | 乘赋值 | x*=y | x=x*y |
/= | 除赋值 | x/=y | x=x/y |
%= | 取余赋值 | x%=y | x=x%y |
**= | 幂赋值 | x**=y | x=x**y |
//= | 整除赋值 | x//=y | x=x//y |
4、赋值运算符的使用
x=20 # 直接复制,直接将20赋值给左侧的变量x
y=10
x=x+y # 将x+y的和赋值给x,x的值为30
print(x) # x的值为30
x+=y # 40 相当于x=x+y
x-=y # 30 相当于x=x-y
print(x) # 30
x*=y
print(x) # 300
x/=y
print(x) #30.0 发生了类型转换 x的数据类型为float类型
print(type(x)) # <class 'float'>
x%=2 # 相当于x=x%2
print(x) # 0.0
z=3
y//=z # 相当于y=y//z
print(y) # 3
y**=2 # 相当于y=y**2
print(y) # 9
# Python支持链式赋值
a=b=c=100 # 相当于执行a=100 b=100 c=100
# Python支持系列解包赋值
a,b,c=10,20,30 # 相当于执行a=10 b=20 c=30
print('------如何交换两个变量的值呢?------')
a,b=b,a # 将b的值赋给a,将a的值赋给b
print(a,b)
5、比较运算符
运算符 | 描述说明 | 示例 | 展开形式 |
> | 大于 | 98>90 | True |
< | 小于 | 98<90 | False |
== | 等于 | 98==90 | False |
!= | 不等于 | 98!=90 | True |
>= | 大于或等于 | 98>=98 | True |
<= | 小于或等于 | 98<=98 | True |
6、比较运算符的使用
print('98大于90吗?',98>90) # True
print('98小于90吗?',98<90) # False
print('98等于90吗?',98==90) # False
print('98不等于90吗?',98!=90) # True
print('98大于等于98吗?',98>=98) # True
print('98小于等于98吗?',98<=98) # True
7、逻辑运算符
运算符 | 描述说明 | 用法 | 结合方向 |
and | 逻辑与 | 表达式1 and 表达式2 | 从左到右 |
or | 逻辑或 | 表达式1 or 表达式2 | 从左到右 |
not | 逻辑非 | not 表达式 | 从右到左 |
表达式1 | 表达式2 | 表达式1 and 表达式2 | 表达式1 or 表达式2 | not 表达式1 |
True | True | True | True | False |
True | False | False | True | False |
False | False | False | False | True |
False | True | False | True | True |
8、逻辑运算符的使用
print(True and True)
print(True and False)
print(False and False)
print(False and True)
print('-'*40)
print(8>7 and 6>5) # True
print(8>7 and 6<5) # False
print(8<7 and 10/0) # False ,10/0并没有运算,当第一个表达式的结果为False,直接得结果,不会计算 and右侧的表达式了
print('-'*40)
print(True or True)
print(True or False)
print(False or False) # False
print (False or True)
print('-'*40)
print(8>7 or 10/0) # True ,左侧的表达式结果为True时,or的右侧表达式根本不执行运算符
print('-'*40)
print( not True ) # False
print( not False) # True
print( not (8>7) ) # False
9、位运算符
位运算符把数字看作二进制来计算
(1)按“位与”运算(&):都为1时结果为1,其他情况为0
(2)按“位或”运算(|):只要一个为1结果就为1
(3)按“位异或”运算( ^):两者都为1结果为0,两者为0结果为0,一个为1一个为0结果为1
(4)按“位取反”运算(~)
(5) “左移位”运算 (<<):将一个二进制数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充。
(6)“右移位”运算 (>>):将一个二进制数向右移动指定的位数,右边(低位端)溢出的位被丢弃,左边(高位端)的空位端,如果最高位是0(正数)左侧空位填0,如果最高位是1(负数),左侧空位填1。
10、位运算符的使用
print('按位与运算:',12&8) # 8
print('按位或运算:',4|8) # 12
print('按位异或运算符:',31^22) # 9
print('按位取反:',~123) -124
print('左移位:',2<<2) # 8, 表示的是2向左移动两位 2*2*2
print('左移位:',2<<3) # 相当于 2* 2*2*2
print('右移位:',8>>2) # 8向右移动两位相当于 8//2 ,4//2
print('右移位:',-8>>2) # -2
11、运算符的优先级
运算符 | 描述说明 |
** | 幂运算 |
~、+、- | 取反、正号、负号 |
*、/、%、// | 算术运算符 |
+、- | 算术运算符 |
<<、>> | 位运算符中的左移位和右移位 |
& | 位运算符中的按位与 |
^ | 位运算符中的异或 |
| | 位运算符中的按位或 |
<、<=、>、>=、!=、== | 比较运算符 |
= | 赋值运算符 |