F-строки в Python — это строковые литералы с буквой f в начале и фигурными скобками, содержащими выражения, которые будут заменены их значениями. Выражения оцениваются во время выполнения, а затем форматируются с использованием протокола __format__.
Python f-string — это улучшение по сравнению с предыдущими методами форматирования, называемыми форматированными строковыми литералами. Вы можете прочитать больше на PEP8.
Чтобы создать f-строку, поставьте перед строкой букву «f». Сама строка может быть отформатирована почти так же, как с «str.format()».
Синтаксис
|
1 |
print(f'{}') |
Пример 1: как использовать f-строку в Python
|
1 2 3 4 |
xoxo = 'Weeknd' yello = 'Homer' print(f'Hello, {xoxo} and {yello}') |
Выход
|
1 |
Hello, Weeknd and Homer |
Пример 2: используйте F(заглавная f)
В этом коде нам больше не нужно писать функцию format(); вместо этого было бы достаточно f или F.
|
1 2 3 4 |
xoxo = 'Weeknd' yello = 'Homer' print(F'Hello, {xoxo} and {yello}') |
Выход
|
1 |
Hello, Weeknd and Homer |
Вы можете видеть, что мы не использовали малую капитализацию f. Вместо этого мы использовали заглавную F и не получили никаких ошибок, что означает, что F является допустимым синтаксисом.
Пример 3: передача выражения
f-строки в Python оцениваются во время выполнения, и вы можете поместить в них допустимые выражения Python. Это позволяет вам делать некоторые изящные вещи.
|
1 2 3 4 |
xoxo = 'Weeknd' yello = 'Homer' print(f'{5 + 6}') |
Выход
|
1 |
11 |
Пример 4: синтаксическая ошибка
|
1 2 3 4 |
answer = 456 f"Your name is "{answer}"" |
Выход
|
1 |
SyntaxError: invalid syntax |
Пример 5: обратная косая черта не может использоваться непосредственно в строке формата
|
1 |
print(f"newline: {ord('\n')}") |
Выход
|
1 |
SyntaxError: f-string expression part cannot include a backslash |
Но вы можете поместить обратную косую черту в переменную в качестве обходного пути.
|
1 2 3 4 |
line = ord('\n') print(f"your data: {line}") |
Выход
|
1 |
your data: 10 |
Многострочные f-строки
Python предоставляет различные способы создания многострочной строки. Это может быть полезно, когда у вас есть очень длинная строка, и вы можете разделить эту строку на несколько строк.
|
1 2 3 4 5 6 7 8 9 |
language = 'Python' salary = '100k' work = 'Remote' data =(f'{work} ' f'{language} developer salary is ' f'{salary}') print(data) |
Выход
|
1 |
Remote Python developer salary is 100k |
