【发布时间】:2020-04-21 20:40:24
【问题描述】:
我正在完成 Euler 项目,并已将其发送至 problem #7。我借助我在网上找到的一个视频制定了一个解决方案,但是有一行代码我不明白。这是问题和我的解决方案。
"""By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.
What is the 10 001st prime number?"""
primes = []
x = 2
while(len(primes)) < 10001:
if all(x % prime for prime in primes):
primes.append(x)
x += 1
print(primes[-1])
我对 all() 函数感到困惑。我知道如果余数不为零,x % prime 将评估为 true,但函数对 for 语句的作用究竟是什么?提前致谢!
【问题讨论】:
-
all将在生成器表达式中查找所有 True 值 -
谷歌列表理解以了解更多关于该语法的信息,然后是生成器表达式
-
许多提供基本文档的站点以及提供工作示例的站点都很好地涵盖了这一点。您的研究中有哪些不明白的地方?
-
也许查看等效的python代码会有所帮助docs.python.org/3/library/functions.html#all在for循环中注意,当您第一次遇到评估为假的元素时,您会得到假,否则为真。用简单的英语 - 一个 interable 的所有值都必须为 true 才能使 all() 返回 true
标签: python function for-loop boolean