Skywhy Shadow
Профи
(567)
5 дней назад
Вы не тупая! Вы просто не до конца использовали анонимную функцию.
В чем проблема:
Лямбда-выражение (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 в вашем примере.
В общем, вы все сделали правильно в плане синтаксиса лямбда-выражения, просто нужно было как-то использовать или отобразить полученный результат.
програмисты херовы
Иван Агеев
Знаток
(353)
5 дней назад
1. Ты в интерактивной среде (например, IDLE, Jupyter, консоль), но не видишь результат
• В интерактивной среде, если ты просто пишешь выражение, Python его выполнит, но не выведет, если нет print().
• Пример:
(lambda m, t: m**t)(5, 2) # это вернёт 25, но ты его не увидишь
Решение:
print((lambda m, t: m**t)(5, 2)) # теперь выведет: 25
2. Ошибка в синтаксисе (например, копипаст с символами из Word)
Если ты случайно скопировал код, и там не обычные скобки, а «умные» символы вроде ( ) или , вместо , — Python не сможет это распарсить.
Проверь, что ты используешь обычные латинские символы, не русскую раскладку и не символы из Word.
⸻
3. Ты в скрипте, но не используешь print()
Если ты пишешь этот код в .py файле:
(lambda m, t: m**t)(5, 2)
Он выполнится, но ничего не выведет в консоль. Используй:
print((lambda m, t: m**t)(5, 2))
Ошибку не выдает но нихера не пишет
Ну или я прост тупая