Ваша sum()
функция помещает все передаваемые ей аргументы в кортеж, потому что вы использовали *args
. Вы вызвали функцию sum()
с одним аргументом, который является списком. Итак, args
- это кортеж с одним элементом, списком:
>>> def demo(*args): return args
...
>>> demo([42, 81])
([42, 81],)
Затем вы перебираете кортеж и пытаетесь суммировать объект списка.
Либо удалите *
из параметра args
(и просто примите один аргумент), либо передайте значения вашего списка в sum()
, используя *
в вызове тоже:
def sum(args):
# ... all the same code
# ...
result = sum(temp)
или
result = sum(*temp)
Вы также игнорируете возвращаемое значение функции sum()
и печатаете входные данные. Если вы хотите напечатать результат, передайте этот результат в print()
. В приведенных выше примерах я добавил переменную result
, напечатав эту переменную.