вернуться к циклу for из цикла if в python - PullRequest
1 голос
/ 09 марта 2019

Предполагается, что функция загружает список и печатает сумму первого и последнего простых чисел в списке.Я написал его так, чтобы был составлен новый список, и к нему добавлена ​​идея, что к нему добавляются только простые числа - если это не простое число, следует вернуться к началу цикла 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

1 Ответ

2 голосов
/ 09 марта 2019

Вы можете использовать оператор 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

...