|
|
10鱼币
- import math
- def is_prime(number):
- if number > 1:
- if number == 2:
- return True
- if number % 2 == 0:
- return False
- for current in range(3, int(math.sqrt(number) + 1), 2):
- if number % current == 0:
- return False
- return True
- return False
- def get_primes(number):
- while True:
- if is_prime(number):
- yield number
- number += 1
- def solve():
- total = 2
- for next_prime in get_primes(3):
- if next_prime < 2000000:
- total += next_prime
- else:
- print(total)
- return
- if __name__ == '__main__':
- solve()
复制代码
三个问题:
1、为什么get_primes()只需要传入参数的值为 3
- def solve():
- total = 2
- for next_prime in get_primes(3):
- if next_prime < 2000000:
- total += next_prime
- else:
- print(total)
- return
复制代码
2、__name__ == '__main__' 是什么意思?
- if __name__ == '__main__':
- solve()
复制代码
3、下面的函数里面的 yield 怎么理解?
- def get_primes(number):
- while True:
- if is_prime(number):
- yield number
- number += 1
复制代码 |
最佳答案
查看完整内容
程序A直接执行则__name__ == '__main__'
如果是程序B通过import A调用,则判断不成立,不执行solve()
|