Почему «return» не завершает цикл for-range в функции? [закрыто]

Я пытаюсь завершить скрипт после того, как верну в него значение для range петля.

Когда код доходит до if arr == [] or len(arr) == 1 or len(arr) == 0 or n == len(arr) - 1: цикл for продолжается, несмотря на n == len(arr) -1быть правдой. Когда я отлаживаю, я вижу arr возвращается (я думаю), но затем цикл for продолжается, и я получаю сообщение об ошибке:

      elif arr[n] != arr[n + 1] and inAPair(arr[n], arr[n+1]):
IndexError: list index out of range

Вот код:

      def dirReduc(arr):
    #some code....
    for n in range(len(arr)):
        if arr == [] or len(arr) == 1 or len(arr) == 0 or n == len(arr) - 1:
            return arr
        elif arr[n] != arr[n + 1] and inAPair(arr[n], arr[n+1]):
            arr.remove(arr[n])
            arr.remove(arr[n])
            dirReduc(arr)
        else:
            print("gonna continue")
            continue

Почему не for конец цикла?

Изменить: я посмотрю на n>len(arr)-1, но, если это так, разве сценарий не должен заканчиваться, когда n == len(arr) - 1?

0 ответов

Другие вопросы по тегам