学习了许久的Python,我单独总结出了Python中比较常见的6种运算符,感觉略有不全,希望大伙可以一起讨论与研究Python!
一、算术运算符
加
减 -
乘 *
除 /
取余 %
取整 //
异号 -
不变号 +
取绝对值 abs(x)
转为整数 int(x)
转为浮点数 float(x)
复数 complex(re,im)
共轭复数 c.conjugate()
返回一个数值对(x//y,x%y) divmod(x,y)
x的y次幂(两种写法) x**y,pow(x,y)
二、比较运算符
小于(<),小于等于(<=),等于(==),大于(>),大于等于(>=),不等于(!=),is(判断两个标识符引用一个对象) ,is not(不是同一个对象)
1.八个比较运算符优先级相同
2.python允许链式比较 x<y<z,它相当于 x<y and y<z
3.复数不能用于比较大小,只能用于比较相等
三、逻辑运算符
x or y 短路运算符 (它只有第一个运算数为false才计算第二个运算数的值)
x and y 短路运算符 (它只有第一个运算数为True才进行第二个运算数的值)
not x not的优先级低(not a==b 相当于 not(a==b)),a = not b 是错误的
四、位运算符
python中的位运算符是把数字看作是二进制来进行计算的
& 按位与运算符:参数运算的两个值(二进制),如果两个相应为都为1,则改为的结果为 1,否则为0
| 按位或运算符:参与运算的两个值,只有对应位的两个数,有一个为1,结果为1
^ 按位异或运算符:对应位数数值不同为1,相同为0
~ 按位取反运算符:针对单个数,二进制格式,相应的位的数值取反,1变0,0变1
<< 左移动运算符:各二进制位左移若干位,高位丢弃,低位补0
>> 右移动运算符:各二进制位又移若干位
>>> a = bin(20)
>>> a
'0b10100'
>>> b = bin(30)
>>> b
'0b11110'
二进制数:默认8位,0b前缀标识,从地位到高位读取,从右到左写,不够的位数补0,直到读取8位为止
调用python二进制函数bin,0b代表二进制标识符,二进制数默认8位,则a,b对应的二进制数为:
a = 25 = 0001 1001
b = 62 = 0011 1110
a&b =24= 0001 1000
a|b =63 = 0011 1111
a^b = 39 = 0010 0111
~a = -26 = 1110 0110
负数:
源码:0001 1010
反码:1110 0101
补码:1110 0110
a<<2 = 100 = 0110 0100
a>>2 = 6= 0000 0110
>>> bin(25)
'0b11001'
>>> bin(62)
'0b111110'
>>> 25&62
24
>>> bin(24)
'0b11000'
>>> 25|62
63
>>> bin(63)
'0b111111'
>>> 25^62
39
>>> bin(39)
'0b100111'
>>> ~25
-26
>>> bin(-26)
'-0b11010'
>>> 25<<2
100
>>> bin(100)
'0b1100100'
>>> 25>>2
6
>>> bin(6)
'0b110'
验证
>>> eval('0b00011000')
24
>>> eval('0b00111111')
63
>>> eval('0b00100111')
39
>>> eval('-0b00011010')
-26
>>> eval('0b01100100')
100
>>> eval('0b00000110')
6
五、赋值运算符
= 简单的赋值
+= 加法赋值运算
-= 减法赋值运算
*= 减法赋值运算
/= 除法赋值运算
%= 取余法赋值运算
**= 幂赋值运算
//= 取整除赋值运算
六、成员运算符
python提供了成员运算符,测试一个元素是否在序列(squence)中
in 如果指定元素在序列中,返回True,否则返回False
not in 如果指定元素不在序列中,返回True,否则返回False
谢谢大伙观看!