Мой код должен получить целое число и список целых чисел. Он возвращает сумму целых чисел в списке, КРОМЕ, он игнорирует несчастный номер и номер, следующий сразу за несчастливым числом. Я только пытаюсь использовать рекурсию (НЕТ ИТЕРАЦИИ). Пока мой код работает для первых 5 случаев, но имеет проблемы с последними 2, потому что в конце у них неудачные числа. Я не пытаюсь полностью переписать свою функцию, только нахожу ошибку в том, что у меня есть.
def unlucky(unlucky_num, a_list):
"""
>>> unlucky(13,[1])
1
>>> unlucky(13,[1,2,3,4,5,6])
21
>>> unlucky(13,[13,1,2,3])
5
>>> unlucky(13,[1,13,2,3])
4
>>> unlucky(13,[13, 0])
0
>>> unlucky(13,[13,1,2,13,2,1,13]) #13,1,13,2,13 ignored
3
>>> unlucky(7,[7,4,5,7,5,4,7]) #7,4,7,5,7 ignored (7 is unlucky)
9
"""
if a_list == []:
return 0
if a_list[0] == unlucky_num:
if len(a_list) > 1:
return unlucky(unlucky_num, a_list[2:])
return unlucky(unlucky_num, a_list)
return a_list[0] + unlucky(unlucky_num, a_list[1:])
для последних двух случаев я получаю следующие ошибки (имя файла отредактировано):
Error
**********************************************************************
File "------", line 39, in sum_unlucky
Failed example:
sum_unlucky(13,[13,1,2,13,2,1,13]) #13,1,13,2,13 ignored
Exception raised:
Traceback (most recent call last):
File "-------", line 138, in __run
exec(compile(example.source, filename, "single",
File "<doctest sum_unlucky[5]>", line 1, in <module>
sum_unlucky(13,[13,1,2,13,2,1,13]) #13,1,13,2,13 ignored
File "-------", line 50, in sum_unlucky
return sum_unlucky(unlucky_num, a_list[2:])
File "---------", line 52, in sum_unlucky
return a_list[0] + sum_unlucky(unlucky_num, a_list[1:])
File "--------", line 50, in sum_unlucky
return sum_unlucky(unlucky_num, a_list[2:])
File "--------", line 52, in sum_unlucky
return a_list[0] + sum_unlucky(unlucky_num, a_list[1:])
File "-------", line 51, in sum_unlucky
return sum_unlucky(unlucky_num, a_list)
File "------", line 51, in sum_unlucky
return sum_unlucky(unlucky_num, a_list)
File "------", line 51, in sum_unlucky
return sum_unlucky(unlucky_num, a_list)
[Previous line repeated 986 more times]
File "----", line 45, in sum_unlucky
if a_list == []:
RecursionError: maximum recursion depth exceeded in comparison