Вы не тупая! Вы просто не до конца использовали анонимную функцию.
В чем проблема:
Лямбда-выражение (lambda m, t: mt)(5, 2) действительно определяет анонимную функцию, которая принимает два аргумента m и t и возвращает m в степени t. Однако, вы вызываете эту функцию с аргументами 5 и 2, но никуда не сохраняете и не печатаете результат. Python вычисляет результат (25), но ничего с ним не делает.
Как исправить (несколько вариантов):
1. Распечатать результат:
print((lambda m, t: m**t)(5, 2))
В этом случае функция вычисляется, и результат (25) выводится на экран с помощью print().
2. Сохранить результат в переменную:
result = (lambda m, t: m**t)(5, 2)
print(result) # Или что-то другое с переменной result
Здесь результат вычисления лямбда-функции сохраняется в переменной result, а затем распечатывается.
3. Использовать лямбда-функцию в более сложном выражении:
Лямбда-функции чаще всего используются внутри других функций, например, map, filter, sort и т.д., где результат ее вычисления сразу же используется. Например:
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers) # Вывод: [1, 4, 9, 16, 25]
Объяснение:
Когда вы просто пишете (lambda m, t: mt)(5, 2) в интерактивном режиме Python, он вычисляет выражение, но не отображает результат, если вы явно не укажете это сделать (например, с помощью print()). Интерактивный режим Python автоматически печатает значение последнего вычисленного выражения, только если это выражение не является присваиванием переменной.
Пример для лучшего понимания:
Представьте, что вы говорите кому-то: "Посчитай 5 в квадрате". Человек посчитает, получит 25, но если вы не попросите его сказать вам результат или записать его, то он просто останется у него в голове. То же самое происходит и с Python в вашем примере.
В общем, вы все сделали правильно в плане синтаксиса лямбда-выражения, просто нужно было как-то использовать или отобразить полученный результат.
програмисты херовы