当前位置: 首页 > 知识库问答 >
问题:

Python:逻辑表达式为False,但if不在乎[duplicate]

尉迟正奇
2023-03-14

可能重复:
为什么“[]==False”在“if not[]”成功时计算为False?

这怎么可能逻辑测试a==True产生False,但如果a:工作?请参阅下面的代码

>>> a = bin(0)
>>> if a:
    print a == True, 'HOWWWW???????'


False HOWWWW???????
>>> type(a)
<type 'str'>
>>> 

共有3个答案

尤夕
2023-03-14

对于字符串a如果a等于如果len(a)=0

缪征
2023-03-14

好的,在python中,似乎不能这样测试字符串

>>> a == False
False
>>> a == True
False
>>> 
长孙星汉
2023-03-14

if语句不依赖于值是否等于true。这取决于bool(a)是否等于True,在本例中为True。在布尔上下文中,非空字符串被视为true。请参阅文档。

 类似资料:
  • 指定在表达式计算结果为 TRUE 时执行的命令。 if(表达式) 备注 包含表达式的 if 语句与像 If FoundColor <> Blue 这样的传统 if 语句的区别是,它在单词“if”后的字符为左大括号。尽管通常把整个表达式包围在括号中,不过也可以写成这样:if (x > 0) and (y > 0)。此外, 如果单词 "if" 后是 函数调用 或者类似 "not" 或 "!" 的运算符

  • 本文向大家介绍Java正则表达式逻辑运算符,包括了Java正则表达式逻辑运算符的使用技巧和注意事项,需要的朋友参考一下 Java正则表达式支持3个逻辑运算符,它们是- XY:X,然后是Y X | Y:X或Y (X):捕获组。 XY:X,然后是Y 这仅匹配两个连续的单个字符。 示例 输出1 输出2 X | Y 这匹配“ |”周围的两个表达式/字符中的任何一个 示例 输出结果 (X):捕获组 捕获组使

  • 问题内容: 在Python 2.6中查看Queue.py时,我发现这个结构有点奇怪: 如果maxsize为0,则队列永远不会满。 我的问题是在这种情况下如何运作?如何0 < 0 == 0被认为是错误的? 问题答案: 我相信Python对关系运算符的序列有特殊的处理方式,以使范围比较易于表达。能说比说好得多。 这些称为链接比较。这是他们文档的链接。 在您谈论的其他情况下,括号会强制在一个关系运算符之

  • 问题内容: 这是我的代码: 我在 IF 条件语句中遇到错误。 我究竟做错了什么? 问题答案: 您可能想要而不是。

  • 问题内容: 使用Python正则表达式如何获得/返回?所有Python回报是: 问题答案: 对象始终为true,如果不匹配,则返回。只是测试真实性。