簡體   English   中英

從python中的if循環返回for循環

[英]go back to a for loop from an if loop in python

該函數應該加載列表並打印列表中第一個和最后一個素數的和。 我已經編寫了它,以便創建一個新列表,並且只添加了質數的想法-如果它不是質數,則應回到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

您可以使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM