Python 运算符

目录

一、Python算术运算符

二、Python赋值运算符

三、Python比较运算符

四、Python逻辑运算符

五、Python身份运算符

六、Python成员运算符

七、Python位运算符

1、&

2、|

3、^

4、~反转所有位(此处涉及原码、反码、补码)

5、<<


一、Python算术运算符

+加法、-减法、*乘法、/除法、%取模、**幂、//地板除(取整除)

需要注意的是:+字符串之间的相加会被"拼接"起来,而字符串和数字相乘就会重复多次相同的字符串。

二、Python赋值运算符

=、+=、-=、*=、/=、%=、//=、**=、&=、|=、~=、>>=、<<=

x += y等同于x = x + y,其他同理

&,|,~、>>、<<详见后边Python位运算符

三、Python比较运算符

==、!=、>、<、>=、<=

用于比较前后两个值

四、Python逻辑运算符

and、or、not

1、and前后两个语句为真,则返回True

2、or前后两个语句有一个为真,则返回True

3、not反转结果,如果结果为真,则返回False

五、Python身份运算符

身份运算符用于比较对象,不是比较它们是否相等,但如果它们实际上是同一个对象,则具有相同的内存位置,有:is、is not

1、is如果两个变量是同一个对象,则返回 true,和“==”作用不同,“==”用于比较值,而“is”主要用来判断两个对象的身份标识,即两者的基本要素 “id”,也叫做同一性运算符

2、is not如果两个变量不是同一个对象,则返回 true

六、Python成员运算符

成员资格运算符用于测试序列是否在对象中出现:in、not in

七、Python位运算符

位运算符用于二进制数字

包括&、|、^、~、<<、>>

运算符描述实例
&AND如果两个位均为 1,则将每个位设为 1。
|OR如果两位中的一位为 1,则将每个位设为 1。
^XOR如果两个位中只有一位为 1,则将每个位设为 1。
~NOT反转所有位。
<<Zero fill left shift通过从右侧推入零来向左移动,推掉最左边的位。
>>Signed right shift通过从左侧推入最左边的位的副本向右移动,推掉最右边的位。

示例:

1、&

x = 3 # 3的二进制为11
y = 1 # 1的二进制为1

print(x & y) # 返回值为1

2、|

x = 3
y = 1
print(x | y) # 返回值为3
x = 4 # 二进制为100
y = 1 # 二进制为1
print(x | y) # 返回值为5(101)

3、^

x = 3
y = 1
print(x ^ y) # 返回值为2(10)

4、~反转所有位(此处涉及原码、反码、补码)

计算机用最高位存放符号,这个 bit 一般叫做符号位。 正数的符号位为 0, 负数的符号位为 1

一个 byte 有 8bit,最大值是 0 1 1 1 1 1 1 1 (+127),最小值是 1 1 1 1 1 1 1 1 (-127)

计算规则:正数的反码不变和原码一致,负数的反码会在原码的基础上,高位的符号位不变,其他位取反。反码的存在是为了正确计算负数,因为原码不能用于计算负数

反码的计算如果是负数跨零进行计算的话,计算得出的结果不对

我们拿 -3 + 5 来举例

-3 的原码是 1 0 0 0 0 0 1 1,转成反码的话就是 1 1 1 1 1 1 0 0

 1 1 1 1 1 1 0 0
+        0 1 0 1  
-----------------
 0 0 0 0 0 0 0 1 

而2的原码是00000010,此时便需要补码(去掉代表符号的位数,-1的补码1111111(127)与-1的绝对值相加等于模(128))

正数的补码是原码,负数的补码在反码的基础上+1

示例:-3的原码为10000011,-3的反码为11111100,-3的补码为11111101

此时 

1 1 1 1 1 1 0 1
+        0 1 0 1  
-----------------
 0 0 0 0 0 0 10

 回到本文’~‘取反,即所有位0变为1,1变为0

例:~2=-3

计算:2的原码为00000010,取反后:11111101(为负值)

负值计算需要用到补码,则11111101的补码为:10000010+1=10000011,即为-3

5、<<

x = 2
y = 1
print(x << y) # 返回值为4(010-->100)

>>同理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值