Ошибка TypeError: 'int' object is not callable
Пытался написать сортировку списка с использованием рекурсии, начала вылезать ошибка TypeError: 'int' object is not callable после добавления рекурсии функции(до этого для тестов использовал списки из трех элементов - рекурсия была не нужна).
def a(mas):
menshe = []
bolshe = []
sorted = []
if len(mas) <= 2:
return mas
else:
a = int(len(mas) // 2)
vibor = mas[a]
del mas[a]
if len(mas) == 2:
for i in mas:
if i < vibor:
menshe.append(i)
else:
bolshe.append(i)
sorted.append(menshe)
sorted.append(vibor)
sorted.append(bolshe)
print(sorted)
else:
a(mas)
Сорри за говно код, только учусь)
Ответы (1 шт):
Функция названа также, как и внутренняя переменная.
Таким образом, когда в последней строке вы "вызываете" a(mas) для программы в этот момент a уже переназначено и там число (из строки a = int(len(mas) // 2)).
Для того чтобы такие ошибки не возникали, пожалуйста прочитайте соглашения по форматированию кода и не используйте короткие a, b, i, j, k и прочие названия, а используйте осмысленные имена переменных и функций. Для функций обычно используют глагол или описание действия.