Курс по Python: https://stepik.org/course/100707
На этом
занятии мы подробнее поговорим о способах формирования строк на основе набора
различных переменных. Мы уже знаем с вами как создавать строки и соединять их
между собой. Предположим, у нас есть две переменные:
и мы формируем
такое сообщение:
"Меня зовут "+name+", мне "+str(age)+" и я люблю язык Python."
На выходе
получим:
'Меня зовут Сергей, мне 18 и я люблю язык Python.'
Но это не самый
удобный и распространенный способ формирования строк по шаблону. Гораздо
удобнее использовать специальный метод строки:
str.format(*args)
который в данном
конкретном случае можно использовать так:
"Меня зовут {0}, мне {1} и я люблю язык Python.".format(name, age)
Смотрите, здесь
в фигурных скобках мы указываем индекс переменной, значение которой будет
подставлено в это место строки. Индекс 0 – первая переменная, указанная в
методе format, т.е. name, а индекс 1 –
вторая переменная age. То есть, метод формат возвращает новую строку в
заданном формате. И чтобы сохранить этот результат в какой-либо переменной,
следует записать так:
msg = "Меня зовут {0}, мне {1} и я люблю язык Python.".format(name, age)
Теперь msg ссылается на
созданную строку.
Также мы можем
одну и ту же переменную указывать несколько раз, например, так:
"Меня зовут {0}, мне {1} и я люблю язык Python. {0}".format(name, age)
Как видите, это
удобнее обычной конкатенации строк. Но эту запись можно сделать еще понятнее,
используя именованные параметры. Для этого у каждой переменной пропишем ее имя
(ключ). Оно придумывается программистом, например:
format(fio=name,
old=age)
и, далее, в
формате строки указываются уже эти имена:
"Меня зовут {fio}, мне {old} и я люблю язык Python. {fio}".format(fio=name, old=age)
Это уже гораздо нагляднее
и понятнее. Глядя на эту строку, мы легко понимаем, что и где будет записано. Конечно,
если указать неверное имя, например, так:
"Меня зовут {name}, мне {old} и я люблю язык Python. {fio}".format(fio=name, old=age)
То возникнет
ошибка, говорящая, что ключа name не существует. То есть, в фигурных
скобках указывается именно ключ, а не переменная. И, кроме того, благодаря
использованию ключей, мы можем записывать переменные в методе format в любом порядке.
Например, поменяем их местами:
"Меня зовут {fio}, мне {old} и я люблю язык Python. {fio}".format(old=age, fio=name)
На выходе получим то же самое.
Но, начиная с
версии Python 3.6, появился новый,
гораздо более удобный способ форматирования строк. Это, так называемые, F-строки. Здесь
мы рассмотрим лишь основы использования этого подхода, для более глубокого
изучения можно обратиться к стандарту PEP8:
https://www.python.org/dev/peps/pep-0498/
Итак, чтобы
указать Python воспринимать
строку, как F-строку, перед
ее литералом ставится символ ‘f’ (именно малая буква). И, теперь, в
фигурных скобках можно записывать любые конструкции языка Python, например, имена
переменных:
f"Меня зовут {name}, мне {age} и я люблю язык Python."
Видите как это
удобно?
Далее, внутри
фигурных скобок F-строк можно записывать, например, и арифметические
операции и методы строк:
f"Меня зовут {name.upper()}, мне {age*2} и я люблю язык Python."
В результате,
получим:
'Меня зовут СЕРГЕЙ, мне 36 и я люблю язык Python.'
Или даже не прописывать
переменные, а использовать обычные числовые операции и вызывать функции:
f"Меня зовут {len(name)}, мне {14*2} и я люблю язык Python."
Как видите, все
достаточно просто и наглядно. Теперь, в своих программах вы тоже сможете
использовать F-строки, если
ваш интерпретатор языка версии 3.6 и выше, либо метод format(), если F-строки не
поддерживаются из-за низкой версии. Обычно, сейчас повсеместно применяют F-строки, так как
они намного удобнее других способов форматирования строк.
Для закрепления
этого материала подготовлено несколько практических заданий и после их
выполнения жду всех вас на следующем занятии.
Курс по Python: https://stepik.org/course/100707