Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 素数生成器有时在函数内部时,在结尾处返回none_Python 3.x - Fatal编程技术网

Python 3.x 素数生成器有时在函数内部时,在结尾处返回none

Python 3.x 素数生成器有时在函数内部时,在结尾处返回none,python-3.x,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

我用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?

为什么它在函数内部打印none而不是不打印?我该如何解决这个问题呢?

为什么在1==1:时说
,而不是在True:
时说
?这是因为你正在打印一个不返回任何值的函数的返回值。如果函数中没有执行的return语句,Python将添加一个隐式的
returnnone
。如果将
print(f(n))
更改为simply
f(n)
,它将不再打印
None