返回顶部
首页 > 资讯 > 后端开发 > Python >Python 中的 or and 运算,
  • 461
分享到

Python 中的 or and 运算,

Python 2023-01-31 01:01:10 461人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

问题出现: python 中的 or,and 运算,可以写出比较复杂的演算表达式; 看了一些大神的演算规则解释,觉得不是很好理解,有些人甚至理解错了规则。 这里聊一下自己的理解。 其他人是怎么做的: 先看两个例子热下身: r

问题出现:

python 中的 or,and 运算,可以写出比较复杂的演算表达式;
看了一些大神的演算规则解释,觉得不是很好理解,有些人甚至理解错了规则。
这里聊一下自己的理解。

其他人是怎么做的:

先看两个例子热下身:
    return 1 or 2
    return 1 and 2

两元的 or and 运算可以通过死记来掌握:
    如果有一个值为真,or 立刻返回第一个真值;
    ......

如果你记得两元的 or,and 运算规则,你肯定知道正确答案:
    return 1 or 2      # 返回 1
    return 1 and 2      # 返回 2

个人不推荐死记,因为容易忘记和甚至弄混淆。

可以这样理解:

Python 中,
    or 可以理解为找真值演算,从左到右发现真值就返回真值;
        如果两个都是假值,那就返回最后一个假值。

    and 可以理解为找假值演算,从左到右发现假值就返回假值;
        如果两个都是真值,那就返回最后一个真值。

演算规则简单归纳一下就是:

    or :找真值:
        如果有一个值为真,or 立刻返回第一个真值;
        如果所有值都为假,or 返回最后一个假值。

    and :找假值:
        如果有一个值为假,and 立刻返回第一个假值;
        如果所有值都为真,and 返回最后一个真值。

分析:

先来看比较难搞的三元演算表达式的例子:
    return 0 and 1 or 2

相信你也发现了,三元的运算可以拆分成两个两元的运算表达式:
    return 0 and 1 or 2 中:
        0 and 1 :找假值,返回 0;
        然后把返回的 0 继续和后面的表达式做演算:
        0 or 2 :找真值,返回 2。
所以:
    return 0 and 1 or 2 :# 返回 2

就是这么简单。

当然,这还没完!
还有一种特殊情况需要分析。

特殊情况分析:

当表达式的所有值都是真值,并且运算符不全部一致,
    那么第一个 or 或 and 演算完,直接返回。

    举两个梨子:
        return 1 or 2 and 3 :
            1 or 2:找真值返回1;因为全部值都是真值,且运算符不全部一致,直接返回。

        return 1 and 2 or 3 中:
            1 and 2:找假值返回2;因为全部值都是真值,且运算符不全部一致,直接返回。

    所以:
        return 1 or 2 and 3 :# 返回 1
        return 1 and 2 or 3 :# 返回 2

特殊情况的反面:

可能会有人有疑问:
    既然全部值都为真值,且运算符不全部一致的时候,只算第一个 or 或 and ,
    那么全部值都为假值,且运算符不全部一致的话,是不是也只算第一个 or 或 and 呢!

答案是否定的。

我们来验证一下:

    return '' or 0 and None
    上面的结果返回的是 0;

    return '' and None or 0
    上面的结果返回的是 0;

那么全部值为真值,且运算符全部一致的时候呢:

    return 0 and None and ''
    上面的结果返回的是 0;

    return '' or None or 0
    上面的结果返回的是 0;

所以,就算值都是假值,也要老老实实做运算,别想着运算第一个 or 或 and 就完事了。

练习一下:

二元运算:
    return 1 or 0
    return 1 and 0

    return 1 or 2
    return 1 and 2

三元运算:
    return 1 or 2 or 3
    return 1 and 2 and 3
    注意:上面两个表达式的值全部为真值,但是表达式的演算符号相同。

四元运算:
    return '' and None or 0 and 1

(参考答案预警!你不打算在心里演算一下么?)

参考答案:

return 1 and 0 :# 返回 0
return 1 or 0 :# 返回 1

return 1 or 2 :# 返回 1
return 1 and 2 :# 返回 2

return 1 or 2 or 3 :# 返回 1
return 1 and 2 and 3 :# 返回 3

return '' and None or 0 and 1 :# 返回 0

小结:

or :找真值:
    如果有一个值为真,or 返回第一个真值;
    如果所有的值都为假,or 返回最后一个假值。

and :找假值:
    如果有一个值为假,and 返回第一个假值;
    如果所有的值都为真,and 返回最后一个真值。

特殊情况:
    当表达式的所有值都是真值,并且运算符不全部一致,
    那么第一个 or 或 and 演算完后直接返回。

传送门:https://blog.51cto.com/13508140/2327410
本文系笔者原创
转载请注明出处
—————————————

--结束END--

本文标题: Python 中的 or and 运算,

本文链接: https://lsjlt.com/news/183104.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python 中的 or and 运算,
    问题出现: Python 中的 or,and 运算,可以写出比较复杂的演算表达式; 看了一些大神的演算规则解释,觉得不是很好理解,有些人甚至理解错了规则。 这里聊一下自己的理解。 其他人是怎么做的: 先看两个例子热下身: r...
    99+
    2023-01-31
    Python
  • Python中运算符not、and、or
    优先级1. and 与 2. or 或 3. not 非运算要记住:数字中非零为真零为假;True 为真 False 为假。or :与and相反,任意一个真即为真,同假才为假(因为要挨个查验是否有真,所以假的情况下值为最后一个假值,例如:0...
    99+
    2023-01-31
    运算符 Python
  • python3 中 and 和 or 运算规律
    在Python中,and和or是逻辑运算符,它们具有一定的运算规律。1. and运算规律:- 如果左侧表达式为False,则整个表达...
    99+
    2023-10-11
    python
  • python中and和or逻辑运算符的示例分析
    这篇文章给大家介绍python中and和or逻辑运算符的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、概述python中的逻辑操作符and 和or,也叫惰性求值,由于是惰性,只要确定了值就不往后解析代码了。...
    99+
    2023-06-26
  • python中and和or逻辑运算符的用法示例
    目录一、概述二、用法说明(一)and 用法(二)or 用法三、两个集合and 和or操作的时候的问题四、优先级问题(and > or)附:python中if语句and和or用法...
    99+
    2024-04-02
  • Python 里 and、or 的计算规
    引子:出现以上情况的原因是什么呢?bool('') == False bool(0) == False所有变量的位操作都是通过强制转换成bool实现的,并且表达式的值是从左到右第一个能够确定表达式的值的变量。例如 (‘’ or 5 or 0...
    99+
    2023-01-31
    Python
  • 如何理解Python中 and 和 or 运算短路逻辑
    本篇文章为大家展示了如何理解Python中 and 和 or 运算短路逻辑,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。短路逻辑规则如下:表达式从左至右运算,若 or 的左侧逻辑值为 True ,则...
    99+
    2023-06-01
  • python 中的or 和 and
        在看到python源码的时候,有一句关于or的用法,当时很疑惑,以前一直认为其用法类似与java中的"&&" 和 "||" ,返回的是boolean类型,结果当前是错误的,下面给大家分享一下python中的and和o...
    99+
    2023-01-31
    python
  • python and   or
    python中and和or的用法From 《dive into python》python 中的and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值。or也是从左到有计算表达式,返回第一个为真的值。IDLE ...
    99+
    2023-01-31
    python
  • python中的and、or 操作符
    在python中 非空 非零的数都为真  1. 其"and"操作符返回的结果是决定表达式结果的值:两边条件都为真则结果为真,有一假则为假  1) 当and两边条件为“真”时,返回的是and右边的值:  1 >>> 1 ...
    99+
    2023-01-30
    操作 python
  • 聊聊python逻辑运算及奇怪的返回值(not,and,or)问题
    首先,‘and’、‘or’和‘not’的优先级是not>and>or。 同一优先级从左往右计算。 ...
    99+
    2024-04-02
  • Python and or用法
    在Python中 None,False,空字符串"",0,空列表[],空字典{},空元组()都相当于False,在布尔上下文中为假;其它任何东西都为真 or:是从左到右计算表达式,返回第一个为真的值,如果两个都是假,返回的是右边的值。an...
    99+
    2023-01-31
    Python
  • VBS中And运算符的作用
    本篇内容主要讲解“VBS中And运算符的作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“VBS中And运算符的作用”吧!And 运算符对两个表达式进行逻辑“与”运算。result = expr...
    99+
    2023-06-08
  • python中的and和or怎么使用
    在Python中,and和or是逻辑运算符,用于组合多个条件或表达式的结果。 and操作符用于将两个条件或表达式的结果进行逻辑与操作...
    99+
    2024-02-29
    python
  • python逻辑运算及奇怪的返回值(not,and,or)问题的示例分析
    小编给大家分享一下python逻辑运算及奇怪的返回值(not,and,or)问题的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先,and、or和not...
    99+
    2023-06-29
  • VBS中Or运算符的作用
    这篇文章主要讲解了“VBS中Or运算符的作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VBS中Or运算符的作用”吧!Or 运算符对两个表达式进行逻辑“或”运算。result = expr...
    99+
    2023-06-08
  • python逻辑运算符and怎么用
    这篇文章将为大家详细讲解有关python逻辑运算符and怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。说明and逻辑与,一假则假,都真才真,可以对符号两侧的值进行与运算。只有在符号两侧的值都为Tru...
    99+
    2023-06-20
  • 无意学会了python中and和or的有
        今天看书,无意中看到了Python的and和or的一个有趣用法,最后在网上查找这种用法的机制,归根结底还是要仔细理解python中and和or的机制。Python中if-else有多种写法。假设a=10,b=20,取较大者。最常规的...
    99+
    2023-01-31
    学会了 python
  • sql中and和or的用法
    and 和 or 是 sql 中的逻辑运算符,用于组合条件。and 运算符仅当所有条件都为真时返回真,而 or 运算符只要有一个条件为真就返回真。and 优先级高于 or,可使用括号更改...
    99+
    2024-05-10
  • sql中or和and的区别
    or 和 and 运算符在 sql 中用于组合布尔表达式,返回 true 或 false。and 仅当所有表达式为 true 时为 true;or 当至少一个表达式为 true 时为 t...
    99+
    2024-05-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作