运算符分类:
算术运算符
+、 - 、* 、/ 、//,% **(幂运算)
# 算术运算符
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
赋值运算符 = += -=
相同级别运算符出现 遵循从左至右
浙公网安备 33010602011771号