质数生成器有时在函数内部时最后不返回任何值

时间:2018-07-07 02:45:00

标签: python-3.x

我用python制作了这个素数生成器:

for x in range(a , b):
    y = 2
    while 1 == 1:
        if x % y == 0:
            if x == y:
                print(x)
                break
            else:
                break
        y += 1

,只要a> 2和b> 3

,它将返回直到b的所有素数。

例如,当a = 2且b = 11时,我得到了

2
3
5
7

但是当我将其嵌套在这样的函数中并打印时:

def f(b,a=2):
    for x in range(a , b):
        y = 2
        while 1 == 1:
            if x % y == 0:
                if x == y:
                    print(x)
                    break
                else:
                    break
            y += 1
print(f(11))

我明白了:

2
3
5
7
None?

为什么在函数内部不打印而不打印不打印?我该如何解决?

0 个答案:

没有答案