if len(array)==0:
return new_array
new_array.append(array.pop()*2)
rec_mult(array, new_array)
print(rec_mult(original_list))
Почему возвращает None?
Воняет
new_array = [] На этом мои полномочия всё
подробнее плиз
Изучай питон по книгам плиз
return где?
в базовом случае..
return rec_mult(array, new_array)
original_list = [1,2,3,4,5] def rec_mult(array, new_array = []): if len(array)==0: return new_array new_array.append(array.pop()*2) return rec_mult(array, new_array) print(rec_mult(original_list))
ты принтуешь пустоту
Спасибо за внимательность к моей невнимательности )
используй дебаггер
повторюсь на самом простом примере
def rec_mult(array, new_array=[]): if len(array) == 0: return new_array new_array.append(array.pop() * 2) return rec_mult(array, new_array[:]) original_list = [1, 2, 3, 4, 5] print(rec_mult(original_list))
def rec_mult(array): def _rec_mult(_array, new_array): if len(_array) == 0: return new_array new_array.append(_array.pop() * 2) return _rec_mult(_array, new_array) return _rec_mult(array, [])
А нам тут прямо нужно зачем-то замыкание и вот это всё? И в чём прикол в if len(...) == 0?
Тут вообще просто [i * 2 for i in array] надо
Ну, я исходного условия не видел, может там по ТЗ надо разломать исходный список.
Ну он тут и так разламывается
В варианте с компрехеншеном — нет.
[i * 2 for i in array]; array = []
Объяснить, почему не сработает, или догадаешься?
Ну типа да, но есть же array.clear()
Я вот не был уверен есть ли
Обсуждают сегодня