Почему «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
?