gpt4 book ai didi

python - 奇怪的Python语法,或者在打印语句中

转载 作者:行者123 更新时间:2023-11-30 23:08:43 27 4
gpt4 key购买 nike

我找不到任何相关信息,所以我被迫在这里询问。我确信对于任何熟悉 Python 的人来说这是一个简单的问题。

Python 2:

print raw_input() == 0 or hash(tuple(map(int, raw_input().split(' '))))

Python 3:

print(input()==0 or hash(tuple(map(int,input().strip().split()))))

我试图理解为什么打印语句中出现“or”。有问题的代码在 print 语句中有一个 bool 运算符,用于比较 bool 值和 int。这就是我需要向我解释的。它显然是Python特有的。如果 input()==0 返回 true,代码会打印什么?我们如何比较 bool 值和哈希值,再说一遍,我们在 print 语句中进行 bool 值比较做什么?

最佳答案

在 Python 中,与 orand 的比较利用两个功能:

  1. Truthy and falsey values ,并且
  2. Short-circuiting .

所以,当你有这样的事情时:

print(input()==0 or hash(tuple(map(int,input().strip().split()))))

它将遵循操作顺序,检查 input() 是否返回 0。由于它是下一项,如果它为真,那么下一项对结果没有影响,也不会被评估。如果发生这种情况,它将打印 True,因为这是 input()==0 返回的内容。

如果这是假的,它将评估下一部分,获取输入,将其映射为整数,将其转换为元组,然后对其进行散列。然后,它会返回该哈希值,无论它是否为真值(0 以外的数字、包含内容的序列或集合等)。

关于python - 奇怪的Python语法,或者在打印语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31599553/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com