一、and:

在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值;而是,返回它们实际进行比较的值之一。

>>> 'a' and 'b' 'b' >>> '' and 'b' '' >>> 'a' and 'b' and 'c' 'c'

在布尔上下文中从左到右演算表达式的值,如果布尔上下文中的所有值都为真,那么 and 返回最后一个值。

如果布尔上下文中的某个值为假,则 and 返回第一个假值

二、or:

>>> 'a' or 'b' 'a' >>> '' or 'b' 'b' >>> '' or [] or {}

{} >>> 0 or 'a' or 'c' 'a'

[code]

使用 or 时,在布尔上下文中从左到右演算值,就像 and 一样。如果有一个值为真,or 立刻返回该值

如果所有的值都为假,or 返回最后一个假值

注意 or 在布尔上下文中会一直进行表达式演算直到找到第一个真值,然后就会忽略剩余的比较值

三、and-or:

and-or 结合了前面的两种语法,推理即可。

[code]

>>> a='first' >>> b='second' >>> 1 and a or b 'first' >>> (1 and a) or b 'first' >>> 0 and a or b 'second' >>> (0 and a) or b 'second' >>>

这个语法看起来类似于 C 语言中的 bool ? a : b 表达式。整个表达式从左到右进行演算,所以先进行 and 表达式的演算。 1 and 'first' 演算值为 'first',然后 'first' or 'second' 的演算值为 'first'。

0 and 'first' 演算值为 False,然后 0 or 'second' 演算值为 'second'。

and-or主要是用来模仿 三目运算符 bool?a:b的,即当表达式bool为真,则取a否则取b。

and-or 技巧,bool and a or b 表达式,当 a 在布尔上下文中的值为假时,不会像 C 语言表达式 bool ? a : b 那样工作。

四、安全使用and-or

>>> a="" >>> b="second" >>> (1 and [a] or [b])

[''] >>> (1 and [a] or [b])[0] '' >>>

由于 [a] 是一个非空列表,所以它决不会为假。即使 a 是 0 或者 '' 或者其它假值,列表 [a] 也为真,因为它有一个元素。

一个负责的程序员应该将 and-or 技巧封装成一个函数:

def choose(bool,a,b): return (bool and [a] or [b])[0] print choose(1,'','second') #''

python语法总结-Python and、or以及and-or语法总结相关推荐

  1. python基本语法语句-python 语法基础篇 一

    安装篇 编辑篇: 编辑python 一 : 在终端环境下输入python命令,回车键运行.这种方式称为 交互方式. 1️⃣ 打开终端: 2️⃣ 输入python 回车 3️⃣ 输入python 语法 ...

  2. python编程语法大全-Python编程入门——基础语法详解

    今天小编给大家带来Python编程入门--基础语法详解. 关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货 每天 ...

  3. python语法手册-python语法手册

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 常用的也不超过十个,这种相对于更为复杂的html标记语言来说,markdown可谓 ...

  4. python基本语法语句-Python基本语句

    一.Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非 ...

  5. python基本语法语句-python基本语句有哪些

    Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发.下面我们就为 ...

  6. python语法教程-Python语法教程总结规范

    Python语法易错点记录 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar-- 心分享.心 ...

  7. python编程语法大全-python语法汇总

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. splitstriplen()for variable in range ...

  8. python基本语法语句-python学习笔记:基本语法

    原标题:python学习笔记:基本语法 缩进:必须使用4个空格来表示每级缩进,支持Tab字符 if语句,经常与else, elif(相当于else if) 配合使用. for语句,迭代器,依次处理迭代 ...

  9. python中语法错误-python冒号语法错误python中如何创建字典

    python字典定义 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ...

  10. python语法教程-Python语言的核心语法(1)(语法教程)(参考资料)

    1.介绍 本参考手册描述了Python编程语言.它不是一个教程. 虽然我试图尽可能精确,但我选择使用英语而不是正式的规范,除了语法和词法分析.这应该使文档对普通读者更容易理解,但会留下歧义的余地.因此 ...

最新文章

  1. 人脸识别落地开花 相关标准不可或缺
  2. 【设计原则和建议】 构造和析构对象
  3. python入门作业编程题-python入门(一)作业
  4. LCS(最长公共子串)系列问题
  5. 基于java的餐饮管理系统_基于java的餐饮管理系统
  6. 不让登陆_百万伙伴争代言 不让梦想咕咕叫 中国太保寿险公益活动提前117天汇聚300万颗爱心...
  7. java TCP 从客户端键入信息 循环接收发送 示例
  8. 5_1 大理石在哪儿(UVa10474)排序与查找
  9. 格力空调通讯协议_格力空调485通讯协议格式 485总线上modbus通信协议?
  10. 银联刷卡POS机冲正
  11. 一篇文章带你了解网页框架——Vue简单入门
  12. 未来十年最容易消失和最不易被取代的22个职业,越看越心惊!附相关专业
  13. GPG入门指南(加密/签名)
  14. android关闭传感器,您如何在安卓10手机上打开和关闭传感器
  15. 评估指标——均方误差(MSE)、平均绝对误差(MAE)
  16. 浙江印发政府数字化转型工作方案,多处提及电子签名、签章、印章
  17. MySQL 系统表空间ibdata:我也不想当一个死肥宅
  18. Linux系统之iftop的基本使用
  19. php 中margin-top,margin-top是什么意思?
  20. [Office] WPS Excel通过添加宏实现多张表格合并

热门文章

  1. 转 Wireshark和TcpDump抓包分析心得
  2. Android test---robotium----简单例子
  3. mplayer最全的命令
  4. cascade inverse (2010-01-12)
  5. UI分层中使用PageFactory
  6. 2018-2019-1 20189206 《Linux内核原理与分析》第六周作业
  7. 实例方法-扩展器-生命zhou
  8. Openfire 代码部署报错: Variable references non-existent resource:${workspace_loc:openfire_src}...
  9. C#把数据写到硬盘指定位置
  10. (转)利用快速开发框架,快速搭建微信浏览博客园首页文章