page contents

别弄错了Python里的这几个运算符!

会出现这样问题的同学,多半是之前用过其他的编程语言,所以习惯性地认为 ^ 是表示次方,& 是表示逻辑与(同时满足条件)、| 是表示逻辑或(满足条件之一)。

attachments-2026-05-HawcnFzf6a0e5f6955b5c.png

经常有人问类似的问题:


为什么我求圆的面积,结果不对?

r = 10s = 3.14 * (r ^ 2)print(s)

还有人问过这样的问题:


为什么判断两个并列条件时结果不对?

a = 6if (a > 1) & (a < 3):    print('符合条件')

会出现这样问题的同学,多半是之前用过其他的编程语言,所以习惯性地认为 ^ 是表示次方,是表示逻辑与(同时满足条件)、是表示逻辑或(满足条件之一)。


可惜在 Python 中,以上全错!


在 Python 中,这3个都属于同一类符号:位运算符
位运算符会把整数转换成二进制后,再按位进行逻辑运算。


比如 & 按位与运算符:参与运算的两个值,如果二进制的对应位都为 1,则该位的结果为 1,否则为 0。示例:

a = 3    # 0011b = 5    # 0101c = a & b    # 0001print(c)

c 的运算结果是 0001,转回十进制,输出就是 1。

类似的,| 是按位或运算符:只要二进制的对应位有一个为 1,结果位就为 1,否则为 0。示例:

a = 3    # 0011b = 5    # 0101c = a | b    # 0111print(c)

c 的运算结果是 0111,转回十进制,输出就是 7。


要稍复杂一点,是按位异或运算符:当二进制的对应位不相同时,结果为 1,相同则为 0。示例:

a = 3    # 0011b = 5    # 0101c = a ^ b    # 0110print(c)

c 的运算结果是 0110,转回十进制,输出就是 6。


在日常 Python 开发中,位运算符出现得不算多,了解基本概念即可。


那么,最开始的两段代码,如果要实现,正确的符号应该是什么?


Python 中没有专门的“乘方符号”,乘方使用的是 **,r 的平方就是 r ** 2

而逻辑上的分别是 and 和 or

 更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

2059 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2228 文章
  3. Pack 2059 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章