【发布时间】:2019-07-31 12:52:08
【问题描述】:
该函数应该加载一个列表并打印列表中第一个和最后一个素数的总和。我已经写了它,以便创建一个新列表,并且我的想法是只附加素数 - 如果它不是素数,它应该回到那个 for 循环的开头。 我希望我的函数在
之后回到 for 循环的开头if L[i] % j == 0:
因为我只希望将素数附加到 y,但我不认为在这里做'break'是正确的事情,因为当我调用该函数时,我一直在打印整个列表。我试过“break”、“pass”、“continue”和无限循环(尽管我可能没有正确地做到这一点)。请帮忙???
def first_plus_last_prime(L):
y = []
for i in range(len(L)):
if L[i] < 2:
break
for j in range(2, L[i]):
if L[i] % j == 0:
break
y.append(L[i])
print(y)
print(y[0])
print(y[-1])
t = y[0] + y[-1]
return t
【问题讨论】:
-
只是一个建议:有codereview.stackexchange.com。修复代码后,考虑将其发布到那里。除了实现本身的问题外,还有很多其他方面可以改进。
标签: python for-loop if-statement infinite-loop break