我在Python中编写了一个非常简单的函数,它打印出特定序列中的所有素数.
它工作正常,但它给我的结果有太多的括号/括号.我想把结果作为一个输出,只有一个包含所有数字的列表,而不是很多输出,每个包含一个数字.
这是代码:
def prime_list(X, Y):
Z = 0
while X <= Y:
if is_prime(X):
Z = Z, X
X = X + 1
print (Z)
Run Code Online (Sandbox Code Playgroud)
如果数字是素数,is_prime()则代码中使用的函数返回True,如果不是,则返回False.
基本上,对于每个循环,它检查是否X是素数.如果是,X将被添加到名为的列表中Z.虽然,当它这样做时,它还会在列表中添加不必要的括号/括号.这是结果,使用序列1-100:
>>> prime_list(1,100)
(((((((((((((((((((((((((0, 2), 3), 5), 7), 11), 13), 17), 19), 23), 29), 31), 37), 41), 43), 47), 53), 59), 61), 67), 71), 73), 79), 83), 89), 97)
Run Code Online (Sandbox Code Playgroud)
如您所见,括号/圆括号太多了.
我怎样才能重写代码,所以它不能制作这些代码?
只需附加到列表而不是嵌套元组:
def prime_list(X, Y):
Z = []
while X <= Y:
if is_prime(X):
Z.append(X)
X = X + 1
return Z
Run Code Online (Sandbox Code Playgroud)