Перейти до змісту

Форматування символьних рядків

Припустимо маємо дві змінні:

>>> name = 'Даринка'
>>> age = 25

Використовуючи значення цих змінних нам треба сформувати наступний текст:

Мене звати Даринка і мені 25 років.

Скористаємось конкатенацією. Не забуваємо приводити числа до str:

>>> s = 'Мене звати ' + name + ' і мені ' + str(age) + ' років.'
>>> s
'Мене звати Даринка і мені 25 років.'
>>>

Що ми зробили? Використовуючи дані сформували певним чином символьний рядок. Так само можна сформувати інший рядок використавши інші дані. Говорять, що ми "відформатували дані у символьному рядкові". Спосіб зрозуміли, але трохи громіздкий. В Python для формування символьних рядків є більш зручний механізм — "форматовані рядки", або "f-рядки" (f-strings).

Суть у тому, що використовуючи літерал символьного рядка ми одразу ж вказуємо дані, які треба підставити у цей символьний рядок.

Для вказівки, що рядок не простий, а форматований, перед літералом ставлять букву "f":

s = f'Це форматований рядок'

Дані, які треба включити в рядок, вказують у фігурних дужках:

>>> name = 'Даринка'
>>> age = 25
>>> s = f'Мене звати {name} і мені {age} років.'
>>> s
'Мене звати Даринка і мені 25 років.'
>>>

Такий спосіб форматування рядків набагато читабельніший, зрозуміліший.

Використовувати можна лише вже існуючі у програмі дані:

>>> f'{unknown_variable}'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'unknown_variable' is not defined
>>>

Можна використовувати навіть вирази:

>>> a = 2
>>> b = 3
>>> f'{a}+{b}={a+b}'
'2+3=5'
>>>

Часто, коли треба діяти швидко, при зневадженні програм виводять значення змінних за допомогою print(). Виглядає це приблизно так:

print('total=', total)

Використовуючи f-strings робити це можна простіше:

print(f'{total=}')