如何解决如何解释同一行中的运算符 modulo/% 和等式/==?
def has_lucky_number(nums):
return any([num % 7 == 0 for num in nums])
解决方法
列表推导式(这是您需要搜索以了解其工作原理的实际术语,如果您还不知道的话)[num % 7 == 0 for num in nums]
将为您提供 True
或 {{1 }} 值,原始列表 False
中的每个数字对应一个。
每个条目都是 nums
当且仅当 True
中的相应条目是 7 的倍数,因为 nums
是将 x % 7
除以 7 的余数- 如果余数为零,则该数字是倍数。就读取表达式本身而言,x
在功能上等同于 num % 7 == 0
,
例如,(num % 7) == 0
的原始列表将为您提供结果列表 [1,5,7,9,14,22]
,因为该列表中只有 [False,False,True,False]
和 7
满足条件。
之后,如果列表中的任何元素为真,表达式 14
将返回 any(someList)
。
因此,给定的整个函数将简单地检测列表中的任何元素是否是 7 的倍数,在此代码的上下文中显然被认为是“幸运的”。
,检查操作优先级的文档 https://docs.python.org/3/reference/expressions.html#evaluation-order
您可以在表中看到 mult/div(或 % modulo)出现在比较之前(== 和
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。