社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Crossin的编程教室 • 4 月前 • 135 次点击  

大家好,欢迎来到 Crossin 的编程教室。


经常有人问类似的问题:


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

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。


如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~

作者:Crossin的编程教室


Crossin的新书《码上行动:用ChatGPT学会Python编程》已经上市了。本书以ChatGPT为辅助,系统全面地讲解了如何掌握Python编程,适合Python零基础入门的读者学习。【点此查看详细介绍】
购买后可加入读者交流群,Crossin为你开启陪读模式,解答你在阅读本书时的一切疑问。
Crossin的其他书籍:


添加微信 crossin123 ,加入编程教室共同学习~
感谢转发和点赞的各位~

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/196590