`
standalone
  • 浏览: 611098 次
  • 性别: 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以及and-or语法总结

    Python中的`and`、`or`以及`and-or`语法是编程中常见的逻辑操作符,它们用于处理布尔逻辑。在Python中,这些操作符不仅返回布尔值,还可能返回参与运算的实际值。以下是对这些语法的详细解释: 1. **and**: `and`...

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

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

    DiveIntoPython-zh-cn

    - **Python实现**:概述Python中面向对象编程的实现方式。 **5.2 使用from module import导入模块** - **导入模块**:说明如何使用from module import语句导入特定的模块。 - **导入示例**:给出具体的导入示例。 ...

    Mahato -- Learn Python 3 -- 2022.pdf

    根据提供的文件信息,“Mahato -- Learn Python 3 -- 2022.pdf”这份文档主要介绍了Python编程语言的基础知识和入门技巧。以下是对该文档提到的一些关键知识点的详细阐述: ### 一、介绍 #### 1. **编程语言简介**...

    OpenCV-Python-Toturial-中文版.pdf

    - **按位运算:** 使用 `cv2.bitwise_and()`, `cv2.bitwise_or()`, `cv2.bitwise_xor()`, `cv2.bitwise_not()` 实现图像间的按位逻辑运算。 - **程序性能检测及优化:** - **使用 OpenCV 检测程序效率:** 可以...

    python学习笔记-初识python

    =, >=, ),逻辑运算符(and, or, not)。 五、控制结构 1. 条件语句:if, elif, else用于条件判断。 2. 循环语句:for循环遍历序列,while循环根据条件执行。 3. 列表推导式:一种简洁的创建列表的方式,如 `[i for i...

    Python学习笔记-

    - **4.2 逻辑操作符**:逻辑操作符如and、or、not用于连接布尔表达式。 - **4.3 条件语句**:使用`if`、`elif`、`else`结构来根据条件选择执行不同的代码块。 - **4.4 while循环**:重复执行一段代码直到满足特定...

    python期末复习-程序题.docx

    =, <, >, , >=)、逻辑运算符(and, or, not)等。 - **常用数值运算函数**:如math模块中的sqrt()用于开平方根,pow()用于求幂次。 2. **程序题**: - **海伦公式**:用于计算三角形面积,需先判断输入的三边是否...

    基于python的 Priority-Queue-List.md

    ### 基于 Python 的优先队列应用案例详解 #### 概述 本文将深入探讨在 Python 中如何利用优先队列解决一系列具有挑战性的编程问题。...掌握这些技巧可以帮助开发者更轻松地应对实际项目中的复杂场景。

    Python中and和or如何使用

    在Python编程语言中,`and`和`or`是两个重要的逻辑运算符,它们用于处理布尔逻辑。在本文中,我们将深入探讨这两个运算符的用法,并通过实例来加深理解。 首先,`and`运算符用于连接两个或多个条件,只有当所有条件...

    python的学习和理解-编程技巧1.pdf

    `and`和`or`操作符具有短路特性,即它们会根据第一个操作数的真伪决定是否计算第二个操作数。 动态加载模块在运行时通过`__import__()`函数、`imp`模块的`load_module()`或`exec`语句实现,这对于模块化的程序设计...

    python的学习和理解-编程技巧1参考.pdf

    `and`和`or`运算符在Python中具有短路特性,意味着它们不会计算右侧表达式,除非必要。 动态加载模块可以用`__import__`函数,或者通过`imp`模块的`load_module`。另外,`exec`可以执行字符串形式的Python代码。 `...

    python教程-01-第二天知识点回顾.ev4.rar

    =,>,<)和逻辑运算符(如and,or,not)。 3. **字符串操作**:字符串是不可变序列,可以进行切片、连接、查找、替换等操作。了解字符串方法,如`len()`、`strip()`、`split()`和`join()`,对于处理文本数据至关...

    Python基础教程(全60课)

    - **Python第51课**:学习逻辑运算符`and`、`or`的高级使用技巧。 - **Python第52课**:介绍元组(tuple)的特点及使用场景。 - **Python第53课**:掌握Python中的数学运算方法。 - **Python第54课**:学习布尔逻辑...

Global site tag (gtag.js) - Google Analytics