当前位置: 首页 > 面试题库 >

“如果x”与“如果x不为无”之间的区别

法烨烨
2023-03-14
问题内容

看起来“ if x”几乎像是较长的“ if x is None”语法的简写。它们在功能上是相同的,还是在给定x值的情况下两者的评估结果不同?

我认为行为在所有Python实现中也应该是相同的-但是,如果存在细微的差异,那真是太好了。


问题答案:

在以下情况下:

test = False 
test = "" 
test = 0
test = 0.0 
test = []
test = () 
test = {} 
test = set()

if测试将有所不同:

if test: #False

if test is not None: #True

之所以如此,是因为is测试身份,含义

test is not None

相当于

id(test) == id(None) #False

因此

(test is not None) is (id(test) != id(None)) #True


 类似资料:
  • 问题内容: 抱歉,是否曾经有人问过这个问题,但是我徒劳地寻找我 确切 问题的答案。基本上,对于Python 2.7,我有一个程序运行一系列地理处理工具,具体取决于用户在脚本中调整的一系列True / False变量所要求的内容,例如 但是,我现在发现x不必在字面上是“ True”即可运行该函数。例如: 因此,除False以外的任何值似乎都将评估为True,如果 x == True 或 x为True

  • 但是,这段代码是有效的: 所以我的问题是,import和variable/require方法的作用有什么不同?我想解决困扰我在项目上的导入的任何问题,因为这似乎可能会导致更多的问题。

  • 问题内容: Java中的x 和 x之间有区别吗? 问题答案: 称为预增量,而称为后增量。

  • 本文向大家介绍MongoDB中NumberLong(x)和 NumberLong("x")之间的区别,包括了MongoDB中NumberLong(x)和 NumberLong("x")之间的区别的使用技巧和注意事项,需要的朋友参考一下 NumberLong(x)超出其限制值并四舍五入,而NumberLong("x")没有。 现在,我们将看一个数字,并将其用于NumberLong(x)和Number

  • 我刚刚开始了一个小节点项目,它将与MongoDB接口。然而,我似乎无法正确地导入相关的节点模块,即使我已经通过正确地安装了它们。 例如,以下代码抛出一个错误,告诉我“express没有默认导出”: 但是,此代码的工作原理: 所以我的问题是,import和variable/require方法的功能有什么不同?我想在这个项目上解决困扰我导入的任何问题,因为它似乎可能会在将来引起额外的问题。

  • 问题内容: 回到大学,我的一位教授。告诉我们要做的只是从基本类型到字符串的快速转换。 我不记得我在Java和C ++课程中上过什么课(我已经有一段时间没有使用过了),但是我现在在C#/。Net中使用它,这正是我主要在开发的课程在最近。 将int,decimal,float等基本类型使用over 有优势吗?什么情况会更好? 注意:还向我展示了该教授,因为它比较短,所以我才建议这样做,从那时起我就一直