Ошибка при вызове функции (Python)
Мне нужно создать функцию, принимающую список, и возвращающую максимальное значение из этого списка. Пробовал разными способами передать список как аргумент, ошибки те же.
Реально ли вообще передать именно список как аргумент, а не кортежи и словари? Поэтому def fun(*a): и def fun(**a): НЕ подойдут.
Фрагмент неработающего кода:
def fun(a):
max = 0
for i in a:
if a[i] > max:
max = a[i]
return max
a = [1, 5, 8, 3, 2]
print(fun(a))
Сама ошибка: https://i.imgur.com/7uo38fq.png
Ответы (2 шт):
Либо так (индексы ведь вам не нужны)
for x in a:
if x > max:
max = x
либо так (если индексы для какой-то цели понадобятся)
for i in range(len(a)):
if a[i] > max:
max = a[i]
Кроме того, выбор нуля для начального значения максимума не сработает при наличии отрицательных. Лучше использовать первый элемент.
Ну а про встроенную функцию max вы же знаете?
def fun(a):
maxx = 0
print(a)
for i in range(0,len(a)):
if a[i] > maxx:
maxx = a[i]
return maxx
a = [1, 5, 8, 3, 2]
print(fun(a))
Вам надо поочереди проверять число ли в списке больше максимального.