理解字符串的真实性

2024-03-13

我知道Python内置类型有一个“真实性”值,空字符串被认为是False,同时考虑任何非空字符串True.

这是有道理的

我可以使用内置函数检查这一点bool.

>>> bool("")
False

>>> bool("dog")
True

在使用条件时,我还可以利用这些真实值。例如:

>>> if "dog":
...     print("yes")
...
yes

这很令人困惑

这不适用于==但运算符:

>>> "dog" == True
False

>>> "dog" == False
False

谁能解释为什么==似乎与条件语句的行为不同?


See the 真值检验 https://docs.python.org/3/library/stdtypes.html#truth-value-testing and 比较 https://docs.python.org/3/library/stdtypes.html#comparisons文档的各个部分,摘录如下。

简而言之,大多数事情默认都是真实的,这就是为什么bool("dog")是真的。这==运算符比较两个对象的相等性,而不是比较它们的真实性,正如我假设您所期望的那样。

4.1.真值测试

任何对象都可以测试真值,用于 if 或 while 条件或作为下面布尔运算的操作数。

默认情况下,一个对象被认为是 true ,除非它的类定义了 要么是__bool__()返回 False 或 a 的方法__len__()方法 当用对象调用时返回零。

以下是大多数被视为 false 的内置对象:

  • 常量定义为 false:None and False
  • 任何数字类型的零:0, 0.0, 0j, Decimal(0), Fraction(0, 1)
  • 空序列和集合:'', (), [], {}, set(), range(0)

始终具有布尔结果的运算和内置函数 如果为 false,则返回 0 或 False,如果为 true,则返回 1 或 True,除非另有说明 指出。 (重要的例外:布尔运算or and and始终返回其操作数之一。)

4.3.比较

不同类型的对象,除了不同的数字类型之外,永远不会 比较相等。

...

类的不同实例通常比较为不相等 除非该类定义了__eq__() method.

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

理解字符串的真实性 的相关文章

  • Python 中的哈希映射

    我想用Python实现HashMap 我想请求用户输入 根据他的输入 我从 HashMap 中检索一些信息 如果用户输入HashMap的某个键 我想检索相应的值 如何在 Python 中实现此功能 HashMap
  • 处理 Python 行为测试框架中的异常

    我一直在考虑从鼻子转向行为测试 摩卡 柴等已经宠坏了我 到目前为止一切都很好 但除了以下之外 我似乎无法找出任何测试异常的方法 then It throws a KeyError exception def step impl contex
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 需要在python中找到print或printf的源代码[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在做一些我不能完全谈论的事情 我
  • 使用 Python 从文本中删除非英语单词

    我正在 python 上进行数据清理练习 我正在清理的文本包含我想删除的意大利语单词 我一直在网上搜索是否可以使用像 nltk 这样的工具包在 Python 上执行此操作 例如给出一些文本 Io andiamo to the beach w
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • Pandas Merge (pd.merge) 如何设置索引和连接

    我有两个 pandas 数据框 dfLeft 和 dfRight 以日期作为索引 dfLeft cusip factorL date 2012 01 03 XXXX 4 5 2012 01 03 YYYY 6 2 2012 01 04 XX
  • 使用 xlrd 打开 BytesIO (xlsx)

    我正在使用 Django 需要读取上传的 xlsx 文件的工作表和单元格 使用 xlrd 应该可以 但因为文件必须保留在内存中并且可能不会保存到我不知道如何继续的位置 本例中的起点是一个带有上传输入和提交按钮的网页 提交后 文件被捕获req
  • 从Python中的字典列表中查找特定值

    我的字典列表中有以下数据 data I versicolor 0 Sepal Length 7 9 I setosa 0 I virginica 1 I versicolor 0 I setosa 1 I virginica 0 Sepal
  • Python,将函数的输出重定向到文件中

    我正在尝试将函数的输出存储到Python中的文件中 我想做的是这样的 def test print This is a Test file open Log a file write test file close 但是当我这样做时 我收到
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • 从 NumPy ndarray 中选择行

    我只想从 a 中选择某些行NumPy http en wikipedia org wiki NumPy基于第二列中的值的数组 例如 此测试数组的第二列包含从 1 到 10 的整数 gt gt gt test numpy array nump
  • import matplotlib.pyplot 给出 AttributeError: 'NoneType' 对象没有属性 'is_interactive'

    我尝试在 Pycharm 控制台中导入 matplotlib pyplt import matplotlib pyplot as plt 然后作为回报我得到 Traceback most recent call last File D Pr
  • 使用特定颜色和抖动在箱形图上绘制数据点

    我有一个plotly graph objects Box图 我显示了箱形 图中的所有点 我需要根据数据的属性为标记着色 如下所示 我还想抖动这些点 下面未显示 Using Box我可以绘制点并抖动它们 但我不认为我可以给它们着色 fig a
  • Django-tables2 列总计

    我正在尝试使用此总结列中的所有值文档 https github com bradleyayers django tables2 blob master docs pages column headers and footers rst 但页

随机推荐

  • nunique 排除 pandas 中的某些值

    我正在计算每行的唯一值 但是我想排除值 0 然后计算唯一值 d col1 1 2 3 col2 3 4 0 col3 0 4 0 df pd DataFrame data d df col1 col2 col3 0 1 3 0 1 2 4
  • Lua math.random 不起作用

    所以我正在尝试创建一些东西 并且我到处寻找生成随机数的方法 然而 无论我在哪里测试代码 它都会产生非随机数 这是我写的一个例子 local lowdrops Wooden Sword Wooden Bow Ion Thruster Mach
  • 使用经过身份验证的 REST 请求缓存代理

    考虑以下场景 我有 RESTful URL articles 返回文章列表 用户在每个请求上使用授权 HTTP 标头提供其凭据 根据用户的权限 文章可能因用户而异 对于这种情况 是否可以使用缓存代理 例如 Squid 代理将只看到 URL
  • 如何在Golang中正确使用OAuth2获取谷歌电子邮件

    我已经尝试使用 OAuth 成功进行身份验证golang com x oauth2图书馆 provider variable is oauth2 Config scope is https www googleapis com auth u
  • xcodebuild:错误:“APP.xcworkspace”不存在

    我正在尝试使用 gitlab 设置 CI 当我尝试在本地构建时 出现此错误 xcodebuild error APP xcworkspace does not exist APP 不是真实名称 我也在使用 CocoaPods 我在终端中运行
  • 无法更新 RubyGems

    我在将 RubyGems 从版本 1 1 1 更新到最新版本时遇到困难 我尝试过以下方法 宝石更新 Result 更新已安装的 gem批量更新 Gem 源索引 http gems rubyforge org http gems rubyfo
  • 为结构变量赋值

    结构类型定义为 typedef struct student int id char name double score Student 我构造了一个 Student 类型的变量 并且想为其赋值 我怎样才能有效地做到这一点 int main
  • EVC++下的StandardSDK 4.0可以在远程设备上调试吗?

    我在跑 with 为运行 CE 5 0 的设备开发应用程序 我正在使用为此 它工作得很好 除了以下事实 虽然它以我的设备 即基于 SH4 的 PDA 为目标 但它不会让我选择 StandardSDK 模拟器以外的任何东西进行调试 如果我去工
  • Linux - TCP connect() 失败并出现 ETIMEDOUT

    对于 TCP 客户端 connect 调用 TCP 服务器 Richard Stevens 的 UNIX 网络编程 一书说道 如果客户端 TCP 未收到对其 SYN 段的响应 则返回 ETIMEDOUT 4 4BSD 例如 调用 conne
  • 为什么不能同时为结构体及其指针定义方法?

    鉴于设置第 54 张幻灯片 http tour golang org 54golang之旅 type Abser interface Abs float64 type Vertex struct X Y float64 func v Ver
  • 如何使用$.ajax(); Laravel 中的函数

    我需要通过 ajax 添加新对象 但我不知道如何在 laravel 中使用 ajax 函数 我在刀片模板中的形式是 Form open array url gt expense add method gt POST class gt for
  • 在 IntelliJ 中启用 Grails 3.x 自动重新加载

    可能并不重要 但是有人对 Grails 中的 IntelliJ 重新加载选项有疑问吗 从 IntelliJ Run App 集启动应用程序Reloading active false 我尝试通过控制台 powershwell 清理并重新启动
  • 如何使用 C# 文件 API 检查磁盘上的逻辑和物理文件大小

    如何使用 C api 读取逻辑和物理文件大小 new FileInfo path Length 是实际尺寸 至于磁盘上的大小 我认为没有 API 可以获取它 但您可以使用实际大小和簇大小来获取它 这里需要一些有关计算的信息 http soc
  • 编译时生成的表

    由于一些技巧 我能够在编译时生成一个表 但表中的值并不是很有用 例如 5x5 的表格如下所示 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 为了清楚起见 逗号的位置 创建该表的代码如下
  • MailApp.sendEmail 所有邮件被阻止[重复]

    这个问题在这里已经有答案了 最近我决定从基本的免费 G mail 帐户升级到 GSuite 帐户 我有一组 Google AppsScript 用于管理一组表单 电子表格并发送有关更改的通知 所有脚本都已复制到新的 GSuite 帐户中 并
  • jquery :[] 选择器?

    给定一个 SELECT 元素
  • 如何将日期转换为 GMT?

    如何将不同时区的日期转换为GMT 0 假设我有这样的约会 Fri Jan 20 2012 11 51 36 GMT 0500 Fri Jan 20 2012 11 51 36 GMT 0300 Fri Jan 20 2012 11 51 3
  • 如何提取 MVIMG 的照片/视频组件?

    Google Pixel 2 以及此后可能的其他手机都具有覆盖 动态照片 的功能 这些保存为MVIMG并且比较大 我正在寻找一种删除 提取视频的方法 到目前为止我发现了一个有前途的 exif 标签 exiftool xmp all MVIM
  • PHP 与 MySQL 8.0+ 错误:服务器请求客户端未知的身份验证方法[重复]

    这个问题在这里已经有答案了 我在 PHP 7 0 上运行 MySQL 版本 8 当我尝试从 PHP 连接到数据库时 出现以下错误 连接错误 SQLSTATE HY000 2054 服务器请求客户端未知的身份验证方法 PHP 可能会显示此错误
  • 理解字符串的真实性

    我知道Python内置类型有一个 真实性 值 空字符串被认为是False 同时考虑任何非空字符串True 这是有道理的 我可以使用内置函数检查这一点bool gt gt gt bool False gt gt gt bool dog Tru