逻辑运算符基本描述

运算符 逻辑表达式 描述 实例
and x and y 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。 True and False, 返回 False。
or x or y 布尔"或":如果 x 是 True,它返回 True,否则它返回 y 的值。 False or True, 返回 True。
not not x 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not True 返回 False, not False 返回 True
a = 1
b = 2
c = 3
print((a < b) and (b < c))  # True
print((a > b) and (b < c))  # False
print((a > b) or (b < c))   # True
print(not (a > b))          # True
在python里面,0、’’、[]、()、{}、None为假

python中and和or返回的值并不是True和false这么简单。

# and的返回值
print(2 and 5)   # 5
print(3 and "")  # 返回空# or的返回值
print(2 or 5)   # 2
print(""or 3)   # 3
print("" or 0)  # 0

由上我们可知对于and,如果没有价值,返回的是最后一个真值,如果有假值,则返回第一个假值。;
对于or,如果没有真值,返回的是最后一个假值,如果有真值,则返回的是第一个真值。

逻辑运算符的本质

Python 中,andor 不一定会计算右边表达式的值,有时候只计算左边表达式的值就能得到最终结果。

另外,andor运算符会将其中一个表达式的值作为最终结果,而不是将 True 或者 False 作为最终结果。

应用:三目运算符

在c语言中三目运算符操作为a?b:c
我们来用python的逻辑运算符表示一下

优先级:非>与>或

a = "是小怪兽"
b = "不,是奥特曼"print(1 and a or b) # 是小怪兽
print(0 and a or b) # 不,是奥特曼

但是这样写会出现问题
例如:

a = ""
b = "不,是奥特曼"print(1 and a or b) # 不,是奥特曼

解决:

a = ""
b = "不,是奥特曼"print(1 and a or b) # 不,是奥特曼
c = (1 and [a] or [b])
print(c[0]) # 返回空

( ’ ’ )是为真的,且上面表达式中括号里的值为‘ ’,所以以上结果为空

Python中的与或非相关推荐

  1. 在Python中对子进程进行非阻塞读取

    我正在使用子流程模块来启动子流程并连接到其输出流(stdout). 我希望能够在其stdout上执行非阻塞读取. 有没有一种方法可以使.readline成为非阻塞状态,或者在调用.readline之前 ...

  2. Python中的除法 整除 非整除

    在C/C++语言对于整形数执行除法会进行地板除(舍去小数部分).例如 int a=15/10; a的结果为1. 同样的在Java中也是如此,所以两个int型的数据相除需要返回一个浮点型数据的时候就需要 ...

  3. python中的与或非_「Python基础」 While 循环语句

    Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务.其基本形式为: while 判断条件: 执行语句-- 执行语句可以是单个语句或语句 ...

  4. Python中的贪婪和非贪婪

    Python贪婪和非贪婪 Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符: 非贪婪则相反,总是尝试匹配尽可能少的字符. 在"*",& ...

  5. python中的与或非 | ^

    &是按位逻辑运算符,比如5 & 6,5和6转换为二进制是101和110,此时101 & 110=100,100转换为十进制是4,所以5 & 6=4: |是按位或逻辑运算 ...

  6. Python中的条件语句

    Python中的条件语句是通过一条或多条语句的执行结果(True或者False)来决定要执行的代码块.主要通过if关键字实现,条件中的其他分支用else. 回到以前读书的时候经常用到的一个例子:给学生 ...

  7. python代码块-Python中的代码块和非代码块是什么

    Python中的代码块和非代码块是什么 发布时间:2020-06-26 13:53:30 来源:亿速云 阅读:150 今天就跟大家聊聊有关Python中的代码块和非代码块是什么,可能很多人都不太了解, ...

  8. Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)

    Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名) 目录

  9. Python中的非可变型的数据类型(immutable type)

    1 致谢 感谢 Ned Batchelder博士的讲授, 视频链接如下: https://www.youtube.com/watch?v=_AEJHKGk9ns 2 Python中的非可变型的数据类型 ...

  10. 【整理】Python中的re.search和re.findall之间的区别和联系 + re.finall中带命名的组,不带命名的组,非捕获的组,没有分组四种类型之间的区别

    之前自己曾被搞晕过很多次. 后来使用这些函数次数多了之后,终于比较清楚的弄懂了两者之间的区别和关系了. 尤其是一些细节方面的注意事项了. 在看下面的总结和代码之前,请先确保你对如下基本概念已经有所了解 ...

最新文章

  1. 2022-2028年中国碲化镉薄膜太阳能电池行业发展现状分析及投资前景趋势报告
  2. 【Qt】调用Python函数:无参数、单个参数、多个参数、数组参数
  3. mysql8.0 服务移除_Linux下彻底删除Mysql 8.0服务的方法
  4. NOIP 2017 d2t2 70points
  5. OS - 计算机基本组成
  6. DotNetty 实现 Modbus TCP 系列 (二) ModbusFunction 类图及继承举例
  7. matplotlib之scatter散点、bar直方图(笔记四)
  8. “Max“ stands for big
  9. HALCON 20.11:深度学习笔记(3)---Data(数据)
  10. 视频教程-ThinkPHP5.0项目实战-PHP
  11. 如何打开KML/KMZ文件
  12. secure CRT 信号灯超时时间已到
  13. 让你浏览器飞起来的电脑插件合集
  14. Terrasolid Suite v015-v016 for Microstation CONNECT, V8i, V8 for Windows platforms 1CD
  15. 游戏美术师的火绝对不是捧出来的!不看不知道游戏模型师这么吃香
  16. 三维绕任意轴旋转矩阵
  17. 无人机动力测试台:150kg级-Flight Stand 150
  18. 百度apistore第三方登陆
  19. 编解码方案性能分析工具:外信息传递图(EXIT chart)及LDPC-EXIT代码参考
  20. [Hgame CTF]easyenc

热门文章

  1. Linux常用指令(5)——20.4.25
  2. Coder fresher 要知道底层么
  3. 通过X11转发在服务器上用IGV
  4. Java实现打开浏览器的N种办法
  5. CNC:CNC计算机数控系统技术之数控仿真宏程序代码讲解、案例应用集合之详细攻略
  6. Linux系统的安装与配置
  7. 分支界限法 任务分配问题
  8. 四年,工作、辞职、学习
  9. 7-8 约分最简分式 (15 分)
  10. 利用pyecharts+sklearn实现链家北京二手房房价预测