摘要:上一篇Python从入门到放弃-运算符(1),讲了Python的运算符中的算术运算符、赋值运算符、比较(关系)运算符,这篇继续讲Python的运算符。

逻辑运算符

逻辑运算符是对真和假两种布尔值进行运算,运算后的结果仍是一个布尔值,Python中的逻辑运算符主要包括and(逻辑与),or(逻辑或),not(逻辑非)。下表是逻辑运算符的用法和说明。

运算符 含义 用法 结合方向
and 逻辑与 op1 and op2 从左到右
or 逻辑或 op1 or op2 从左到右
not 逻辑非 not op 从右到左

使用逻辑运算符进行逻辑运算时,其运算结果如下:

表达式1 表达式2 表达式1 and 表达式2 表达式1 or 表达式2 not 表达式1
True True True True False
True False False True False
False False False False True
False True False True True

位运算符

位运算符是把数字看做二进制来进行计算的,因为,需要先将要执行运算的数据转换成为二进制,然后才能执行运算。Python中的位运算符有位与(&)、位或(|)、位异或(^)、取反(~)、左移位(<>)运算符。

  • “位与”运算

“位与”运算的运算符为“&”,“位与”运算的运算符法则是:两个操作数据的二进制表示,只有对应位都是1时,结果才是1,否则为0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同,如下图所示,60&13 = 12

  • “位或”运算

“位或”运算的运算符为“|”,“位或”运算的运算符法则是:两个操作数据的二进制表示,只有对应位都是0时,结果才是0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同,如下图所示,60|13 = 61

  • “位异或”运算

“位异或”运算的运算符为“^”,“位异或”运算的运算符法则是:两个操作数据的二进制表示相同时(同时为0或同时为1),结果为0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同,如下图所示,60^13 = 49

  • “位取反”运算

“位取反”运算也称为“位非”运算,运算符为“~”,“位取反”运算运算就是将操作数中对应的二进制数1修改为0,0修改为1,如下图所示,

  • “左移位”运算

“左移位”运算符<

  • “右移位”运算

“右移位”运算符>>是将一个二进制操作数向右移动指定的位数,右边(低位端)溢出的位被丢弃,而在填充左边(高位端)的空位时,如果最高位是0(正数),左侧空位补零;如果最高位是1(负数),左侧空位填入1。右移位运算相当于除以2的n次幂。例如:a = 240,右移一位的值是120,右移两位的值是60。如下图所示:

成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。在Python中常见的成员运算符如下:

运算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True

如下所示,演示了成员运算符的操作:

运算符优先级

所谓运算符优先级,就是先计算哪个,后计算哪个。与数学的四则运算应该遵守的“先乘除后加减”是一个道理。Python运算符的运算规则是:先进行优先级高的运算,后进行优先级低的运算,同一级优先级的从左到右计算,有括号的先进行括号运算。下表是优先级从高到底排列。

运算符 说明
**
~、+、- 取反、正号、负号
*、/、%、// 算术运算符
+、- 算术运算符
<> 位运算符中的左移和右移
& 位运算符中的位与
^ 位运算符中的位异或
| 位运算符中的位或
、>=、!=、== 比较运算符

在编写代码时尽量使用括号 “()” 来限定运算次序,以免运算次序发生错误。

总结

  • 具体介绍了逻辑运算符、位运算符和成员运算符。

  • 介绍了Python运算符的优先级,在在编写代码时尽量使用括号 “()” 来限定运算次序,以免运算次序发生错误。

end

往期推荐

  • Python从入门到放弃-运算符(1)

  • 趣味python-PDF神器

python ** 运算符_Python从入门到放弃运算符(2)相关推荐

  1. python中的模运算符_Python中的字符串模运算符与format函数

    如果你在网上搜索Python中如何进行字符串插值(string interpolation),那么你很可能会发现一些留言和旧文档中说字符串模运算符(%)以后会被废弃,并移除出标准库.但是这完全是杞人忧 ...

  2. python中 是什么运算符_Python中什么是算术运算符、赋值运算符和复合运算符?...

    本篇文章给大家带来的内容是介绍Python中什么是算术运算符.赋值运算符和复合运算符.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助. 算术运算符 常见的算术运算符有 : + 加法运算符 ...

  3. python中算术运算符_python中的基本算术运算符有哪些

    python中的基本算术运算符有哪些 发布时间:2020-11-16 14:54:33 来源:亿速云 阅读:74 今天就跟大家聊聊有关python中的基本算术运算符有哪些,可能很多人都不太了解,为了让 ...

  4. Python如何克服从入门到放弃?

    编辑:Sophia计算机视觉联盟  报道  | 公众号 CVLianMeng 福     利 为了回馈关注计算机联盟的朋友,特在此送两本Python的书 <零基础轻松学Python>给大家 ...

  5. 【Python学习记录——从入门到放弃】一、变量和简单数据类型(上)

    本文使用的书籍是<Python编程:从入门到实践> 本文使用的是Python3.6 一.运行hello_world.py 这里主要是演示了一下print函数的使用,新手主要是在Python ...

  6. python有没有三元运算符_Python基础入门:从变量到异常处理(1)

    一.学习内容概括 二.具体学习内容 2.1 变量与运算符 2.2.1 注释 1. # #:单行注释,作用于整行. 2. 三引号 ''' '''或者""" "&q ...

  7. python集合运算符_Python 集合、字典、运算符

    先区分一下序列类型和散列类型: 序列类型:list.string.tuple,他们中的元素是有序的. 散列类型:set.dict,他们中的元素无序的.(注意:python3.7.0开始字典变成&quo ...

  8. python生日祝福短信_python从入门到放弃篇5(tkinter模块)实现生日快乐祝福

    #从我开始学习python编程到现在也就4个月的时间,我感觉还是很不错的,我在挣扎,在坚持.因此,请不要放弃治疗. #今天太忙了,搞作业.没时间更新打奖程序了,明天再想办法看看.今天先出新东西,用tk ...

  9. python强制用什么作为语句缩进符号_python从入门到放弃 第二天 谈谈python代码中的冒号和缩进...

    如同格子衬衫一样规整的源代码书写层次,是一个优秀的码农必备的编程习惯.python的作者无意就是这样一个人. python是用冒号(:)和强制缩进作为代码层次来划分代码组的.这是一个很小的知识点,但是 ...

最新文章

  1. 操作系统学习笔记 第二章:进程管理(王道考研)
  2. html进度条圆圈渐变色,HTML5 canvas带渐变色的圆形进度条动画
  3. 邀请别人进入队伍rust_林俊杰组建DOTA2队伍,原Newbee五人被终身禁赛
  4. JavaScript是如何工作的:JavaScript的共享传递和按值传递
  5. Android中Bitmap和Drawable
  6. php7的稳定性,探索PHP7(一)--性能
  7. Linux多线程——使用信号量同步线程
  8. IAR切BANK--程序中的使用
  9. STM32的串口通信
  10. c++怎么将两个类的方法集合成一个类的方法_一文帮你梳理 Java 集合
  11. weblogic多次连接后tcp服务堵塞_网络编程——服务器篇
  12. 告别复杂WCF扩展 REST过程 ,让他 so easy
  13. 【原创翻译】深入理解javascript事件处理函数绑定三部曲(一)——早期的事件处理函数...
  14. java 选取topn_取Oracle中实现TOPN,选取前几条记录
  15. R语言的常用函数速查
  16. Xception: DeepLearning with Depthwise Separable Convolutions2017Google【论文理解】
  17. hp 服务器 sd卡作用,用4张卡聊一聊SD卡规范
  18. 网络云存储技术Windows server 2012 (项目十七 配置iSCSI传输的安全性)
  19. FRM-18108 FRM-10102错误解决
  20. 博友的 编写高质量代码 改善java程序的151个建议

热门文章

  1. 用prototype 方式来创建客户端组件类
  2. 解决Jupyter notebook安装后不自动跳转网页的方法
  3. Linux下如何生成core dump 文件(解决segment fault段错误的问题)
  4. oracle ORA-01000: maximum open cursors exceeded问题的解决方法
  5. Android Studio开发RecyclerView遇到的各种问题以及解决(一)
  6. Linux 桌面玩家指南:17. 在 Ubuntu 中使用 deepin-wine,解决一些依赖 Windows 的痛点问题
  7. 在Java中将Double转换为Integer
  8. 如何判断UIViewController的视图是否可见
  9. Facebook使用机器学习手段来自动优化其系统性能
  10. Keras创建者深度思考:不要将AI作为操纵用户的工具