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

Python链式比较[重复]

薄瑞
2023-03-14

我有这个代码:

if self.date: # check date is not NoneType
    if self.live and self.date <= now and self.date >= now:
         return True
return False

我的IDE说:这看起来应该简化,即Python链式比较。

什么是链式比较,如何简化?

共有3个答案

艾国安
2023-03-14

您的代码可以而且应该简化为:

return self.date and self.live and self.date == now

这是因为:

  1. 现在

关于减少a

吴举
2023-03-14
self.age <= now and self.age >= now

可简化为:

now <= self.age <= now

但是,由于只有当self.age等于now时才是真的,因此我们可以将整个算法简化为:

if self.date and self.live and self.age==now:
   return True
return False

如果要检查年龄是否在某个范围内,请使用链接比较:

if lower<=self.age<=Upper:
     ...

或:

if self.age in range(Lower, Upper+1):
     ...
澹台华翰
2023-03-14

链接比较的示例如下所示。

age = 25

if 18 < age <= 25:
    print('Chained comparison!')

请注意,在封面下,这与下图完全相同,只是看起来更好。

age = 25

if 18 < age and age <= 25:
    print('Chained comparison!')
 类似资料:
  • 我尝试在两个文件之间进行链式比较,如果结果在指定的时间间隔内,则打印/写出结果。 这就是我目前所拥有的。 test1文件: 测试2文件: 剧本本身: 我的首选输出是在test3中只包含以下行: 在第一列中有匹配的ID 第3列和第4列中的两个数值介于test1文件中给出的值之间 我没有得到输出,我不知道哪里出错了。

  • 我有两个整数值和,我写以下语句: 此语句带有下划线,工具提示告诉我必须: 简化链式比较 据我所知,这种比较几乎和它们来的一样简单。我错过了什么? 这个问题和链接有点不同,比较起来有不同的变量。

  • 我正在用PyCharm编写一些python代码。当我编写以下测试时,它给了我一个警告。

  • 问题内容: 假设我有一对班 我希望先按第一个值排序,然后再按第二个值排序。现在,如果我这样做 一切正常,列表按对的第一个值排序,但是如果我这样做 它因错误而失败 好的,所以它可能无法推断参数,所以如果我这样做 它因错误而失败 为什么它对compare()而不是compare()。thenComparing()有效? 问题答案: 该错误似乎与的通用参数有关。一种解决方法是尝试使用显式类型: 请注意,

  • 问题内容: 用于比较的Python文档说: 可以任意链接比较,例如与等效,不同之处在于比较仅被评估一次(但在两种情况下都被发现为假,则根本不评估)。 所以像(人为的例子): 只要求输入一次。这很有道理。和这个: 仅询问 是否 介于1和10之间,并且仅打印“ woo!”。 if 也在10到20之间(证明它们可以“任意链接”)。这也是有道理的。 但是我仍然很好奇在lexer / parser / co

  • 但是Pycharm说我可以简单地说: 我做了一些搜索,却找不到类似的东西。我的问题是这样简化此函数是否正确: 如果是这样,它是否安全,除了它更短之外,这个版本和非简化版本之间有什么区别吗?如果不是正确的简化方式,那是什么呢?