这不是关于查找素数的问题,而是关于如何将代码转换为函数。Python函数查找素数
所以我有这样的代码,以帮助我从2-100打印素数:
pnumber = [x for x in range(2, 101) if all(x % i for i in range(2, x))]
print(pnumber)
如果我这个变形点焊的功能,寻找素数范围:
def p_number(a, b):
pnumber = [x for x in range(a, b+1) if all(x % i for i in range(2, b))]
print(pnumber)
p_number(2, 100)
您可以看到我使用a代替2,b代替100,并相应地更改代码。但不知何故,这不起作用,它会输出一个空的列表。
我想知道为什么?
那么这是合乎逻辑的:因为质数也在'范围(2,b)'中。所以如果你测试'3',它会导致'3%3 == 0',因此'all(..)'将会失败... –
'返回(pnumber)'更改'print(pnumber)' –
为什么'range(2,x)'变成'range(2,b)'? – asongtoruin