理解“的用法”;“虽然是真的”;在控制流Python生成器函数中
我试图理解理解“的用法”;“虽然是真的”;在控制流Python生成器函数中,python,Python,我试图理解while True语句在下面的Python代码中的用法。它使用生成器,并显示在本节的“可视化流程”部分中 该代码是一个试图解决的示例。这里,我们使用起始值为3的get_primes。solve_number_10函数调用get_primes,直到到达最后一个高达2000000的质数 def solve_number_10(): # She *is* working on Project Euler #10, I knew it! total = 2 for next_
while True
语句在下面的Python代码中的用法。它使用生成器,并显示在本节的“可视化流程”部分中
该代码是一个试图解决的示例。这里,我们使用起始值为3的get_primes
。solve_number_10
函数调用get_primes
,直到到达最后一个高达2000000的质数
def solve_number_10():
# She *is* working on Project Euler #10, I knew it!
total = 2
for next_prime in get_primes(3):
if next_prime < 2000000:
total += next_prime
else:
print(total)
return
def get_primes(number):
while True:
if is_prime(number):
yield number
number += 1
为什么我们在没有而true
语句的情况下到达生成器函数的末尾?我们到底需要声明什么为真
?是不是数字少于2000000?我认为情况并非如此,因为solve\u number\u 10
解决了这个问题。我不明白为什么生成器函数会在第二次迭代中结束,因为没有while True
语句,如果距离number
达到2000000还有很长的路要走
def solve_number_10():
# She *is* working on Project Euler #10, I knew it!
total = 2
for next_prime in get_primes(3):
if next_prime < 2000000:
total += next_prime
else:
print(total)
return
def get_primes(number):
while True:
if is_prime(number):
yield number
number += 1
如果有人能解释黄色引号中的粗体文字,我将不胜感激。谢谢大家! 它是一个应该返回许多值的生成器。如果没有循环或递归,则只能一次性返回。所以,虽然真的是无限的。你想叫多少次都可以。增量只是操作顺序的一种效果。当生成器隐式返回时,值的生成就结束了。当body用包装,而True用包装时,它永远不会隐式返回。