Где ошибка в коде (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
  1. Стоит начать с того, что не стоит так называть ни функции, ни переменные.
  2. Где же у Вас здесь рекурсия?!) ее просто нет.

Скорее всего код выглядел так:

def sum_recursive(input_list):
    if input_list == []:
        return 0    
    return input_list[0] + sum_recursive(input_list[1:])
→ Ссылка