Была на курсе задачка вывести таблицу умножения для вводимого числа, по-быстрому решается так или около того:n = int(input())
for i in range(1, 11):
print(f'{n} x {i} = {n * i}')
А вот решение через лямбду:(lambda n: (print(f'{n} x {i} = {n * i}') for i in range(1, 11)))(int(input()))
Лямбда функция, это анонимная функция, которая может принимать неограниченное количество аргументов и одно выражение, срань полная и опытные камрады не рекомендуют её использовать. Но разобрать для себя, стоит.
В примере выше, в качестве аргумента передаётся функция input()
, которая вызывает саму lambda, если я правильно понял, это называется “выражение немедленного вызова функции”.
Внутри lamba функции создаётся генератор, который должен создать tuple из 10-ти элементов, но, как я понял не создаётся, а вызывает 10 раз функцию принт в которую передаётся f-строка
т.к. значения n и i находятся внутри lambda функции, они могут быть переданы f-строке, что и происходит.
Аналогично f-строке, можно использовать метод .format()
, например:
name = 'Алёха'
age = 15
string = 'Привет {}, тебе {} лет!'.format(name, age)
Тут метод .format()
подставит в {}
переменные name и age в порядке “слева на право”. Надо следить, что бы аргументов у метода было столько же, сколько {}
в строке на которую мы его вызываем.