`
standalone
  • 浏览: 595936 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

python中的and-or技巧

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

 

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

and-or 技巧后面真正的技巧是,确保 a 的值决不会为假。最常用的方式是使 a 成为 [a]b 成为 [b],然后使用返回值列表的第一个元素,应该是 ab中的某一个。

例 4.19. 安全使用 and-or 技巧

>>> a = ""
>>> b = "second"
>>> (1 and [a] or [b])[0] 1''
1 由于 [a] 是一个非空列表,所以它决不会为假。即使 a0 或者 '' 或者其它假值,列表 [a] 也为真,因为它有一个元素。

到现在为止,这个技巧可能看上去问题超过了它的价值。毕竟,使用 if 语句可以完成相同的事情,那为什么要经历这些麻烦事呢?哦,在很多情况下,你要在两个常量值中进行选择,由于你知道 a 的值总是为真,所以你可以使用这种较为简单的语法而且不用担心。对于使用更为复杂的安全形式,依然有很好的理由要求这样做。例如,在 Python 语言的某些情况下 if 语句是不允许使用的,比如在 lambda 函数中。

分享到:
评论

相关推荐

    Python中AND、OR的一个使用小技巧

    python中的and-or可以用来当作c用的?:用法。... 您可能感兴趣的文章:python and or用法详解python关键字and和or用法实例Python and、or以及and-or语法总结浅谈Python中(&,|)和(and,or)之间的区别

    python基础教程至60课(基础)

    【Python 第51课】 and-or技巧 123 【Python 第52课】元组 124 【Python 第53课】数学运算 125 【Python 第54课】真值表 127 【Python 第55课】正则表达式(1) 128 【Python 第56课】正则表达式(2) 130 【Python ...

    Python学习小技巧总结

    三元条件判断的3种实现方法 C语言中有三元条件表达式,如 a>b?a:b,Python中没有三目运算符(?...python 中的and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值。 无论

    python testing cookbook

    This cookbook is written as a collection of code recipes containing step-by-step directions on how to install or build different types of Python test tools to solve different problems. Each recipe ...

    dive into python

    4.6.1. 使用 and-or 技巧 4.7. 使用 lambda 函数 4.7.1. 真实世界中的 lambda 函数 4.8. 全部放在一起 4.9. 小结 5. 对象和面向对象 5.1. 概览 5.2. 使用 from module import 导入模块 5.3. 类的定义 5.3.1. ...

    Python语言技巧之三元运算符使用介绍

    python不支持C/C++中的三元操作符 ?:,替代的方法是 …if… else…举例,用下面的语法实现求三个数的最小值。nD1 if nD1 < ( nD2 if nD2<...(X and V1) or V2 正常情况下是不会有错误的,但是文章中也提

    LeetCode-Py:LeetCode题解,Python的LeetCode解决方案

    LeetCode 题解, Solutions to LeetCode by Python LeetCode 刷题顺序和技巧 1. LeetCode 刷题顺序 如果是新手刷题的话,推荐先从简单等级的算法题开始刷起。等简单题上手熟练之后,再开始按照标签类别,刷中等难度的...

    Dive Into Python 中文版

    第 1 章 安装 Python........................................................................................................................................7 1.1. 哪一种 Python 适合您? ..................

    ncas-isc:NCAS科学计算入门课程的教材

    科学计算课程简介 ...and , or not 清单 切片 清单理解 元组 输入输出 弦乐 混叠 职能 更多功能 图书馆 组合脚本和模块 套 辞典 错误和异常 记录和调试 面向对象编程 类和对象 摘要和下一步? 练习和解决方案 处

    测试培训教材

    The VAPI-XP testing tool enables you to create new testing scripts using Microsoft VBScript, Microsoft JavaScript (JScript version), PerlScript, and PythonScript, and integrate these scripts into your...

    pitch.er:投球技巧应用

    * As a user, you will be able to vote on the pitch they liked and give it a downvote or upvote. * As a user, you will be able to be signed in for me to leave a comment * As a user, you will be able to...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    $a and $b :与 $a xor $b :异或 (当$a或$b为true时为true,两者一样时为false) ! $a :非 比较运算符有: $a == $b :相等 $a != $b :不等 $a $b :小于 $a $b :小于等于 $a > $b :大于 $a >= $b :大于等于 ...

Global site tag (gtag.js) - Google Analytics