Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему питон не выполняет действие?

ssiriik Мастер (2421), открыт 5 дней назад
(lambda m,t:m**t)(5,2)
Ошибку не выдает но нихера не пишет
Ну или я прост тупая
7 ответов
Юрий Митин Профи (518) 5 дней назад
Так ппитон змея, как ты хочешь приручить змею, идиот
Егор Кадников Ученик (186) 5 дней назад
скинь весь код ,подскажу
Серёжа МолодецПросветленный (49745) 5 дней назад
Не скидывай.. эту заразу я знаю. Наплетёт в уши а потом не жениться...
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))
PS Просветленный (23419) 5 дней назад
Гениально. Оно посчитало 25 в уме и молчит. А на экран вывести кто должен был? Само оно не догадается, прикинь? Магии не случилось.
Похожие вопросы