如何理解Python中“None or False”、“False or None”、“None and False”、“False and None”的结果?

2023-12-30

我以为我理解了 Python 中的这两个单例值,直到我看到有人使用return l1 or l2代码中,l1和l2都是链表对象,如果l1不为None则返回l1,否则返回l2。

这段代码很好,因为它很短并且看起来很容易理解。然后,我编写一些代码来弄清楚这里发生了什么。

print ( True or 'arbitrary' ) #True
print ( False or 'arbitrary') #arbitrary
print ( None or 'arbitrary' ) #arbitrary

打印结果符合预期。但是,当我尝试把None and False一起。发生了一些非常奇怪的事情。

print ( False or None ) #None
print ( None or False ) #False
print ( None or False or True) #True

所以,我猜规则return A or B are:

  • 按顺序返回第一个 True(不是 None、Not False)值(先是 A,然后是 B)

  • 如果没有 True 值,则返回最后一个值。

最后,我运行这段代码来验证我的猜测。

print ( None or False or True or None) # True
print ( None or False or None) # None
print ( False or None or False) # False

结果似乎证明了我的理论。但有人有更多解释吗?

另外,当我使用时我得到了一些有趣的东西and. Why?

print ( None and False) #None
print ( False and None) #False

简而言之,“and”返回第一个假值或最后一个真值,“or”返回第一个真值或最后一个假值。

>>> None or False
False
>>> False or None
>>> False and None
False
>>> None and False

...

>>> 0 or 3 or 4
3
>>> 5 and 0 and 6
0
>>> 5 and 0 or 6
6
>>> False or {} or 0
0
>>> 3 and 4 and 5
5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何理解Python中“None or False”、“False or None”、“None and False”、“False and None”的结果? 的相关文章

随机推荐

  • SmartGWT ListGrid 很慢,但仅限于 Internet Explorer

    我们已经从 gwtext 迁移到 SmartGWT 总体体验还不错 然而 我们在使用 SmartGWT 的 ListGrid 组件时遇到了很大的问题 如果满足以下两个条件 则速度非常慢 使用 Internet Explorer 5 列或更多
  • 如何在 Django 模型中存储字符串数组?

    我正在构建一个 Django 数据模型 并且希望能够在其中一个变量中存储一组字符串 我怎样才能做到这一点 e g class myClass models Model title models CharField max length 50
  • 将 BLOB(图像)从 oracle 导入到 hive

    我正在尝试使用下面的 Sqoop 命令将 BLOB Image 数据从 oracle 导入到 Hive sqoop import connect jdbc oracle thin host username password m 3 tab
  • 使用 Fusion Table 时有哪些技术限制?

    我正在寻找有关使用 Fusion Tables 时的技术限制的信息 Fusion Table 中可以存储多少行 可以针对 Fusion Table 同时运行多少个查询 读 写 我找不到任何信息https developers google
  • 在 HTML 末尾或“onload”时初始化 JS 组件?

    有一段时间 我一直在通过等待 onload 事件触发并执行一个 JavaScript 组件初始化来运行main 各种各样的 它看起来更干净 并且您可以确定 DOM 的 ID 状态是有序的 但经过一段时间的测试后 我发现组件的初始化被加载期间
  • 编码为 JSON 时 Golang 错误类型为空

    我正在尝试为 REST api 编码一些 JSON 除了一些错误之外 一切正常 例如 使用以下结构 type TemplateResponse struct Message string Error error Template Templ
  • R -应用-将许多列从数字转换为因子

    我需要将许多数字列转换为因子类型 示例表 df lt data frame A 1 10 B 2 11 C 3 12 我尝试过应用 cols lt c A B df cols lt apply df cols 2 function x as
  • WP7 Bing 地图图钉 - 如何调整自定义图钉的位置?

    好吧 简单的问题 但我还没有找到明显简单的答案 我有一个带有地图集成的 Windows Phone 7 应用程序 地图上有一组图钉 图钉是定制的 只是椭圆形 圆形 不幸的是 自定义图钉的位置与地理位置 偏离 当你放大时 它会越来越接近准确
  • 可重复使用的Barrier解决方案陷入僵局?

    我一直在读 The Little Book of Semaphores 第 41 页有一个针对可重用屏障问题的解决方案 我遇到的问题是为什么它不会产生死锁情况 1 rendezvous 2 3 mutex wait 4 count 1 5
  • 安装 PECL 包时出错:Mysql_xdevapi

    当我运行此命令时出现以下错误 sudo pecl install mysql xdevapi Error private tmp pear temp pear build nabilashahidhnTBCl mysql xdevapi 8
  • 将项目添加到组合框

    我正在尝试向组合框添加一些项目 如 msdn 网站上所示 但它向我抛出空引用异常 comboBox1 Items Add test 我尝试将其更改为 ComboBox combobox1 new ComboBox object test n
  • Log4j2 找不到我的配置文件

    我正在尝试设置 SLF4J 以与 Log4J2 一起使用 但我不断收到此错误 ERROR StatusLogger No log4j2 configuration file found Using default configuration
  • Laravel Eloquent:如何从连接表中仅获取某些列

    我在 Eloquent 中有 2 个连接表 即主题和用户 主题模型 public function user return this gt belongs to User 用户模型 public function themes return
  • RecyclerView:未连接适配器;跳过布局

    我一直在 stackoverflow 和 this 上阅读不同的答案博客文章 http blog ashwanik in 2015 05 handling adapter error while using recyclerview htm
  • 搜索包含西里尔文数据的 SQLite 数据库

    我在搜索 SQLite 数据库时遇到问题 该数据库包含用西里尔字符编写的数据 如果关键字也是西里尔字母 那么一切正常 但如果不是 那么我无法在 Android 应用程序中获得结果 有谁知道如何实现搜索西里尔文数据 无论关键字的字符集如何 谢
  • 将 C++ 程序转换为 Windows 服务?

    我编写了一个 做事 的控制台程序 主要使用 boost 如何将其转换为 Windows 服务 关于 Windows 服务 我应该提前了解哪些信息 MSDN 上有一个关于如何设置最小服务的好例子 http msdn microsoft com
  • 在文本中使用 sympy 打印希腊字母

    假设我想打印类似的东西 我是圆周率 其中 pi 实际上应该是希腊字母 pi 带着同情心我可以做到 import sympy from sympy abc import pi sympy pprint pi 它给出了希腊字母 pi 但我在将其
  • setTimeout 花费的时间比应有的时间长

    有人可以解释一下为什么下面的脚本setTimeout命令 在 Greasemonkey 中执行的时间 400 500 毫秒 比在 Firefox 控制台中执行的时间要长得多 在 Firefox 控制台中正好是 100 毫秒 var star
  • function.php 与 wp_redirect($url);出口();使 WordPress 网站空白

    我正在创建一个表单 供用户从前端提交帖子 提交表单后 用户应该被重定向到他们刚刚创建的帖子 我的functions php 中有这段代码 然而 它使我的网站一片空白 我认为这与 exit 行有关 我尝试修改它 但它不起作用 什么也没有发生
  • 如何理解Python中“None or False”、“False or None”、“None and False”、“False and None”的结果?

    我以为我理解了 Python 中的这两个单例值 直到我看到有人使用return l1 or l2代码中 l1和l2都是链表对象 如果l1不为None则返回l1 否则返回l2 这段代码很好 因为它很短并且看起来很容易理解 然后 我编写一些代码