python语法总结-Python and、or以及and-or语法总结
一、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语法总结相关推荐
- python基本语法语句-python 语法基础篇 一
安装篇 编辑篇: 编辑python 一 : 在终端环境下输入python命令,回车键运行.这种方式称为 交互方式. 1️⃣ 打开终端: 2️⃣ 输入python 回车 3️⃣ 输入python 语法 ...
- python编程语法大全-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货 每天 ...
- python语法手册-python语法手册
广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 常用的也不超过十个,这种相对于更为复杂的html标记语言来说,markdown可谓 ...
- python基本语法语句-Python基本语句
一.Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非 ...
- python基本语法语句-python基本语句有哪些
Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发.下面我们就为 ...
- python语法教程-Python语法教程总结规范
Python语法易错点记录 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar-- 心分享.心 ...
- python编程语法大全-python语法汇总
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. splitstriplen()for variable in range ...
- python基本语法语句-python学习笔记:基本语法
原标题:python学习笔记:基本语法 缩进:必须使用4个空格来表示每级缩进,支持Tab字符 if语句,经常与else, elif(相当于else if) 配合使用. for语句,迭代器,依次处理迭代 ...
- python中语法错误-python冒号语法错误python中如何创建字典
python字典定义 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ...
- python语法教程-Python语言的核心语法(1)(语法教程)(参考资料)
1.介绍 本参考手册描述了Python编程语言.它不是一个教程. 虽然我试图尽可能精确,但我选择使用英语而不是正式的规范,除了语法和词法分析.这应该使文档对普通读者更容易理解,但会留下歧义的余地.因此 ...
最新文章
- 人脸识别落地开花 相关标准不可或缺
- 【设计原则和建议】 构造和析构对象
- python入门作业编程题-python入门(一)作业
- LCS(最长公共子串)系列问题
- 基于java的餐饮管理系统_基于java的餐饮管理系统
- 不让登陆_百万伙伴争代言 不让梦想咕咕叫 中国太保寿险公益活动提前117天汇聚300万颗爱心...
- java TCP 从客户端键入信息 循环接收发送 示例
- 5_1 大理石在哪儿(UVa10474)排序与查找
- 格力空调通讯协议_格力空调485通讯协议格式 485总线上modbus通信协议?
- 银联刷卡POS机冲正
- 一篇文章带你了解网页框架——Vue简单入门
- 未来十年最容易消失和最不易被取代的22个职业,越看越心惊!附相关专业
- GPG入门指南(加密/签名)
- android关闭传感器,您如何在安卓10手机上打开和关闭传感器
- 评估指标——均方误差(MSE)、平均绝对误差(MAE)
- 浙江印发政府数字化转型工作方案,多处提及电子签名、签章、印章
- MySQL 系统表空间ibdata:我也不想当一个死肥宅
- Linux系统之iftop的基本使用
- php 中margin-top,margin-top是什么意思?
- [Office] WPS Excel通过添加宏实现多张表格合并
热门文章
- 转 Wireshark和TcpDump抓包分析心得
- Android test---robotium----简单例子
- mplayer最全的命令
- cascade inverse (2010-01-12)
- UI分层中使用PageFactory
- 2018-2019-1 20189206 《Linux内核原理与分析》第六周作业
- 实例方法-扩展器-生命zhou
- Openfire 代码部署报错: Variable references non-existent resource:${workspace_loc:openfire_src}...
- C#把数据写到硬盘指定位置
- (转)利用快速开发框架,快速搭建微信浏览博客园首页文章