Где ошибка в коде (TypeError ), Python
Взял пример с рекурсией, чтобы понять как работает дописал 2 строки для ввода чисел массива с клавиатуры и запуска функции в интерпретаторе:
def sum(list):
if list == []:
return 0
return list[0] + list[1:]
list = [int(i) for i in input().split()]
sum(list)
выдает ошибку TypeError :
Traceback (most recent call last)
<ipython-input-8-d4a1a84fa932> in <module>
5
6 list = [int(i) for i in input().split()]
----> 7 sum(list)
<ipython-input-8-d4a1a84fa932> in sum(list)
2 if list == []:
3 return 0
----> 4 return list[0]+list[1:]
5
6 list = [int(i) for i in input().split()]
TypeError: unsupported operand type(s) for +: 'int' and 'list'
намекает, что я смешал строки с числами, так вроде берется срез чисел из списка, набирается стек и суммируется
Ответы (1 шт):
Автор решения: D.Vinogradov
→ Ссылка
- Стоит начать с того, что не стоит так называть ни функции, ни переменные.
- Где же у Вас здесь рекурсия?!) ее просто нет.
Скорее всего код выглядел так:
def sum_recursive(input_list):
if input_list == []:
return 0
return input_list[0] + sum_recursive(input_list[1:])