运算符分类:

算术运算符

+、 - 、* 、/ 、//,% **(幂运算)

# 算术运算符
a = 3
b = 2
print("a + b=",a + b)
print("a - b=",a - b)
print("a * b=",a * b)
print("a / b=",a / b)
print("a // b=",a // b)
print("a % b=",a % b)
print("a ** b=",a ** b)

结果:

a + b= 5
a - b= 1
a * b= 6
a / b= 1.5
a // b= 1
a % b= 1
a ** b= 9

比较运算符

== ; != ; < ; > ; >=; <=;

# 比较运算符
a = 2
b = 3
print(a == b)
print(a != b)
print(a < b)
print(a > b)
print(a >= b)
print(a <= b)

结果:

False
True
True
False
False
True

逻辑运算符

and(布尔与):全True为True; 左右两边均有表达式

or(布尔或): 全False为False; 左右两边均有表达式

not(布尔非): True变False;反之同理 ; 只有一个表达式

# 逻辑运算符
print(1 < 2 and 3< 4)
print(1 < 2 and 5 < 4)
print(1 > 2 or 3 > 4)

print(1 < 2 or 1 < 3)
print(1 > 2 or 3 < 4)
print(1 > 2 or 3 > 4)

print(not 1 < 2)
print(not 1 > 3)

结果:

True
False
False
True
True
False
False
True

赋值运算符

= 赋值运算符 ;+=; -=; * =; /=;%=; **=;

a = 3
a **= 2 # 相当于a = a**3 即a = a的平方
print(a)

结果:

9

位运算符

前情提要

进制转换

1.二转十:从右往左基数乘以对应的权值,最后相加

十转二:除2取余,余数反方向排序 即从下往上倒着写

2.二转十六:8421法

十六转二进制:8421逆用

示例:0x1a=0001 1010

原码、反码、补码(针对二进制)

二进制第一位为符号位

对于正数:原码=反码=补码

对于负数:

反码:符号位不变,其他位按位取反

补码=反码+1

# 二进制转十六进制
print(hex(0b10110101))

结果:

0xb5

种类:

& 按位与(全1为1 有0则0) ;| 按位或 (补码之间或 全0为0) ;^ 按位异或 (补码之间进行 同0异1);~按位取反 ;<<按位左移 ;>>按位右移

# 按位右移(正数补0; 负数补1)
print(3>>1)
print(-3>>1)

运算符优先级

()优先级别最高

乘方运算 **

算术运算符 * / % // + -(先乘除 后加减)

<<;>>

位运算符(& | ^ ~)

比较运算符 == != > <

逻辑运算符 and or

赋值运算符 = += -=

相同级别运算符出现 遵循从左至右