你好,我对 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
最佳答案
您需要从 gen
调用中递归返回答案,例如
def gen ():
x=random.randint(0,10)
isprime (x)
if isprime(x):
return x
else:
return gen()
此外,您可能需要确保使用一致的缩进,否则 Python 解释器可能会提示它。
关于python - python中使用函数的素数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300119/