Python 3.x 素数生成器有时在函数内部时,在结尾处返回none
我用python制作了这个素数生成器: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
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))
更改为simplyf(n)
,它将不再打印None