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

Python中的“(1,)== 1”是什么意思?

东方骏
2023-03-14
问题内容

我正在测试元组结构,当我==像这样使用运算符时发现它很奇怪:

>>>  (1,) == 1,
Out: (False,)

当我将这两个表达式分配给变量时,结果为true:

>>> a = (1,)
>>> b = 1,
>>> a==b
Out: True

在我看来,这个问题与Python元组尾随逗号语法规则不同。请问==运算符之间的表达式组。


问题答案:

其他答案已经向您表明,该行为是由于运算符的优先级所致,如此处所述。

下次您遇到类似问题时,我将向您展示如何找到答案。您可以使用以下ast模块来解构表达式的解析方式:

>>> import ast
>>> source_code = '(1,) == 1,'
>>> print(ast.dump(ast.parse(source_code), annotate_fields=False))
Module([Expr(Tuple([Compare(Tuple([Num(1)], Load()), [Eq()], [Num(1)])], Load()))])

从中我们可以看到代码已按照TimPeters的解释进行了解析:

Module([Expr(
    Tuple([
        Compare(
            Tuple([Num(1)], Load()), 
            [Eq()], 
            [Num(1)]
        )
    ], Load())
)])


 类似资料:
  • 问题内容: 下面的简短bash脚本列出了给定目录及其子目录中的所有文件和目录。脚本中的意思是什么?请给我一些参考。谢谢 问题答案: 这是第一个参数的位置,被视为目录 在bash脚本参数文件传递到脚本(这是脚本的名称),然后,,…要访问所有的人,你既可以使用自己的标签或使用该组的结构之一。对于组构造,有和。(将所有参数视为一个块,并以分隔)

  • 问题内容: 我们都知道,柔性属性是一个速记,和属性。其默认值为。它的意思是: 但我注意到,在很多地方都使用过。是速记还是?我不明白这是什么意思?我在谷歌搜索中找不到任何东西。 问题答案: 这里是解释: flex: 等同于flex:10。使flex项目具有弹性,并将flex基础设置为零,从而使该项目接收flex容器中指定比例的可用空间。如果flex容器中的所有项目都使用此模式,则它们的大小将与指定的

  • 问题内容: 有时phpMyAdmin生成如下查询: 我想知道在这样的查询中是否有任何意义。 问题答案: 没有。这意味着它不会对您的查询产生任何过滤影响。查询计划者可能会忽略该子句。 通常在通过连接过滤条件来构建客户端查询时使用。 因此,如果您的基本查询存储在这样的字符串中(示例在PHP中,但是它当然适用于许多其他语言): 然后,您可以将许多过滤条件与一个子句连接起来,而不管它是不是使用的第一个条件

  • 还有一个问题 我看这里写了3个 index index.php index.html 这种写3个代表了什么 是按照顺序找么?

  • 问题内容: 一个在Management Studio中工作并返回相同结果的查询,在我们可以找到的任何文档中都未定义。它应该只返回rowcount或。这是什么意思?如果重要的话,驱动程序是JDBC- ODBC桥。 例: 该查询有效,因为该行已添加到数据库中,但是奇怪的是它返回-1,而文档说它只会返回0或行数(如我所纠正)。 更新: 在Management Studio中运行此命令将显示“命令已成功完

  • 问题内容: 我已经看到了许多有关以下内容的查询。 这意味着什么,它将如何执行,返回什么? 另外,在哪种类型的方案中可以使用此方案? 问题答案: 表示“从表中返回1”。它本身并不十分引人注目,因此通常将与它一起使用并经常使用(如@gbn所述,这不一定是最佳实践,但是,即使它没有真正的意义,也足以引起人们的注意(也就是说,我会使用它,因为其他人会立即使用它,并且它“立即变得更明显”。当然,这可能是粘性

  • 问题内容: 在CodeReview上,我发布了一段有效的代码,并要求改进的技巧。我得到的是使用一种布尔方法来检查ArrayList是否具有偶数个索引(这是必需的)。这是建议的代码: 因为我已经困扰了该特定用户很多帮助,所以我决定是时候该困扰SO社区了!我真的不明白这是如何工作的。调用该方法,并以ArrayList的大小作为参数(即ArrayList有十个元素,数字= 10)。 我知道有一个数字与1

  • 问题内容: 语言是Java。在…中是什么意思 在Java API中,以这种方式使用: 所以我认为是格式说明符。 是模板。 1是一个标志? $是宽度? #是精度吗? num是argsize吗? “ str”是typechar吗? 那正确吗? 问题答案: 模板: 可选的arguments_index是一个十进制整数,指示参数在参数列表中的位置。第一个参数由“ 1 $”引用,第二个参数由“ 2 $”等等