Не пойму, почему возникает ошибка "TypeError: 'int' object is not callable"
def highest_palindrom(min = 100, max = 999):
palindroms = []
for a in range(min, max + 1):
for b in range(min, max + 1):
palindrom = a * b
palindrom = str(palindrom)
res = []
for n in range(len(palindrom) // 2):
if palindrom[n] == palindrom[-n - 1]:
res.append(True)
else:
res.append(False)
if False not in res:
palindrom = int(palindrom)
palindroms.append(palindrom)
print(palindroms)
print('Наибольший палиндром в промежутке', 'от', min ** 2, 'до',
max ** 2, 'равен', max(palindroms))
Ошибка в 'max(palindroms)'. Вроде, нет каких-то затененных переменных, но никак не могу понять.
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Питон не различает, где функция, где обычная переменная, для него все имена имеют единое пространство. Поэтому когда вы что-то присваиваете переменной max, то при последующем вызове встроенной функции max питон про эту функцию уже ничего не знает, на её месте лежит то, что вы присвоили в переменную max, поэтому и возникает такая ошибка. Просто не называйте свои переменные/функции/классы именами встроенных функций/классов питона - и не будет никаких проблем.
max ** 2, 'равен', max(palindroms))
^^^ ^^^
Здесь вы одновременно обращаетесь к max как к числу и как к функции. В Питоне такое не прокатит.