该函数应该加载列表并打印列表中第一个和最后一个素数的和。我已经编写了它,以便创建一个新列表,并且只添加了质数的想法-如果它不是质数,则应回到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
答案 0 :(得分:2)
您可以使用else语句:
def first_plus_last_prime(L):
y = []
for i in range(len(L)):
if L[i] < 2:
break
# Look for prime
for j in range(2, L[i]):
if L[i] % j == 0:
break
else:
y.append(L[i])
print(y)
print(y[0])
print(y[-1])
t = y[0] + y[-1]
return t
感谢@UlrichEckhardt提供的信息。 https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops