Эффекты и результаты: списки и функции
Здесь нужно ответить на два дополнительных вопроса.
Первый: может ли список быть передан функции в качестве аргумента?
Конечно может! Любая сущность, распознаваемая Python, может играть роль аргумента функции, хотя нужно быть уверенным, что функция способна с ней работать.
Итак, если Вы передаете список в функцию, она должна обрабатывать его как список.
Вот такая функция:
def list_sum(lst):
s = 0
for elem in lst:
s += elem
return s
вызываемая так:
print(list_sum([5, 4, 3]))
в результате вернет 12
, но Вы должны готовиться к проблемам, если вызовете ее таким рискованным способом:
print(list_sum(5))
Ответ Python будет однозначным:
TypeError: 'int' object is not iterable
output
Это вызвано тем, что по одному целочисленному значению нельзя итерироваться циклом for
.