您好,我对Python比较陌生。下面的代码在python中从0到10生成一个随机数。然后解析另一个函数以确定它是否是素数,如果不是,则生成一个新数字并重复。谁能告诉我为什么它似乎不起作用?
代码:
import random
def gen ():
x=random.randint(0,10)
isprime (x)
if isprime(x):
return x
else:
gen()
def isprime (number):
b = number - 1
while True:
if number > 1:
if b == 1:
return True
break
elif number % b == 0:
return False
b = b-1
else:
return False
g = gen()
g
答案 0 :(得分:1)
您需要递归返回gen
调用中的答案,如
def gen ():
x=random.randint(0,10)
isprime (x)
if isprime(x):
return x
else:
return gen()
此外,您可能希望确保使用一致的缩进或Python解释器可能会抱怨它。