Python 3: f-строка, метод .format() и lambda функция

Опубликовано В рубрике Python Отмечено , , Комментариев к записи Python 3: f-строка, метод .format() и lambda функция нет

Была на курсе задачка вывести таблицу умножения для вводимого числа, по-быстрому решается так или около того:
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 в порядке “слева на право”. Надо следить, что бы аргументов у метода было столько же, сколько {} в строке на которую мы его вызываем.

Добавить комментарий