1062195630 发表于 2021-5-30 10:11:10

python作业第49讲问题救助

import math
def get_prime(i):
    while 1:
      if is_prime(i):
            yield i
      i+=1
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 Fals
def solve():

    total=2
    for j in get_prime(3):
      if j<2000000:
            total+=j
      else:
            print(total)
            return
if __name__ == '__main__':
    solve()



最后的if __name__ == '__main__':什么作用啊

qq1151985918 发表于 2021-5-30 10:16:53

防止文件被当做模块加载时自动运行solve函数。

Hoiste 发表于 2021-5-30 10:17:48

这个是判断是这个代码是源代码打开的还是其他代码调用的,比如说你的例子是写在b.py中,然后用a.py调用了b.py,那么对于b.py,__name__就不等于__main__了,所以不会执行solve方法,而如果是直接打开b.py,那就会直接执行solve()
页: [1]
查看完整版本: python作业第49讲问题救助