F-строки в Python: использование для форматирования на примерах
В этом уроке вы узнаете о F-строках Python и о том, как их использовать для форматирования строк и повышения читабельности вашего кода.
- Введение в F-строки Python
- Примеры f-строки Python
- Многострочные f-строки
- Фигурные скобки
- Порядок вычисления выражений в f-строках Python
- Форматирование чисел с помощью f-строк
- Заключение
Введение в F-строки Python
В Python 3.6 появились f-строки, которые позволяют быстрее и элегантнее форматировать текстовые строки. f-строки позволяют встраивать переменные и выражения в строковый литерал, используя более понятный синтаксис, чем метод format().
Например:
name = 'John' s = f'Hello, {name}!' print(s)
Выход:
Hello, John!
Как это работает.
- Сначала определите переменную со значением «John».
- Затем поместите переменную имени в фигурные скобки {} в текстовой строке. Обратите внимание, что вам нужно поставить перед строкой букву f, чтобы указать, что это f-строка. Можно использовать букву в верхнем регистре(F).
- В-третьих, распечатайте строку s.
Важно отметить, что Python оценивает выражения в f-строке во время выполнения. Он заменяет выражения внутри f-строки их значениями.
Примеры f-строки Python
В следующем примере вызывается метод Upper() для преобразования имени в верхний регистр внутри фигурных скобок f-строки:
name = 'John' s = F'Hello, {name.upper()}!' print(s)
Выход:
Hello, JOHN!
В следующем примере внутри f-строки используется несколько фигурных скобок:
first_name = 'John' last_name = 'Doe' s = F'Hello, {first_name} {last_name}!' print(s)
Выход:
Hello, John Doe!
Этот пример эквивалентен приведенному выше, но использует метод join() :
first_name = 'John' last_name = 'Doe' s = F'Hello, {" ".join((first_name, last_name))}!' print(s)
Выход:
Hello, John Doe!
Многострочные f-строки
Python позволяет вам использовать многострочные f-строки. Чтобы создать многострочную f-строку, вы помещаете букву f в каждую строку. Например:
name = 'John' website = 'copython.ru' message =( f'Hello {name}. ' f"You're learning Python at {website}." ) print(message)
Выход:
Hello John. You're learning Python on copython.ru.
Если вы хотите распределить f-строку по нескольким строкам, вы можете использовать обратную косую черту(\), чтобы экранировать возвращаемый символ, например:
name = 'John' website = 'copython.ru' message = f'Hello {name}. ' \ f"You're learning Python at {website}." print(message)
В следующем примере показано, как использовать тройные кавычки(«»») с f-строкой:
name = 'John' website = 'copython.ru' message = f"""Hello {name}. You're learning Python at {website}.""" print(message)
Выход:
Hello John. You're learning Python at copython.ru.
Фигурные скобки
При вычислении f-строки Python заменяет двойные фигурные скобки одной фигурной скобкой. Однако двойные фигурные скобки не означают начало выражения.
Python не будет оценивать выражение внутри двойной фигурной скобки и заменять двойные фигурные скобки одинарной. Например:
s = f'{{1+2}}' print(s)
Выход:
{1+2}
Ниже показана f-строка с тройными фигурными скобками:
s = f'{{{1+2}}}' print(s)
Выход:
{3}
В этом примере Python оценивает {1+2} как выражение, которое возвращает 3. Кроме того, он заменяет оставшиеся двойные фигурные скобки одинарными.
Чтобы добавить в результирующую строку больше фигурных скобок, используйте более трех фигурных скобок:
s = f'{{{{1+2}}}}' print(s)
Выход:
{{1+2}}
В этом примере Python заменяет каждую пару двойных фигурных скобок одной фигурной скобкой.
Порядок вычисления выражений в f-строках Python
Python оценивает выражения в f-строке в порядке слева направо. Это очевидно, если выражения имеют побочные эффекты, как в следующем примере:
def inc(numbers, value): numbers[0] += value return numbers[0] numbers = [0] s = f'{inc(numbers,1)},{inc(numbers,2)}' print(s)
Выход:
1,3
В этом примере следующий вызов функции увеличивает первое число в списке номеров на единицу:
inc(numbers,1)
После этого вызова число Number[0] равно единице. А второй вызов увеличивает первое число в списке номеров на 2, в результате чего получается 3.
Форматирование чисел с помощью f-строк
В следующем примере используется f-строка для форматирования целого числа в шестнадцатеричном виде:
number = 16 s = f'{number:x}' print(s) # 10
В следующем примере f-строка используется для форматирования числа в экспоненциальной записи:
number = 0.01 s = f'{number:e}' print(s) # 1.000000e-02
Если вы хотите дополнить нули в начале числа, вы используете формат f-строки следующим образом:
number = 200 s = f'{number: 06}' print(s) # 00200
06 — это общее количество числовых строк результата, включая ведущие нули.
Чтобы указать количество десятичных знаков, вы также можете использовать f-строку:
number = 9.98567 s = f'{number: .2f}' print(s) # 9.99
Обратите внимание, что в этом случае f-строка также выполняет округление.
Если число слишком велико, вы можете использовать разделитель чисел, чтобы его было легче читать:
number = 400000000000 s = f'{number: ,}' # also can use _ print(s) # 400,000,000,000
Чтобы отформатировать число в процентах, вы используете следующий формат f-строки:
number = 0.1259 s = f'{number: .2%}' print(s) # 12.59% s = f'{number: .1%}' print(s) # 12.5%
Python имеет более сложные правила форматирования, с которыми вы можете ознакомиться по следующей ссылке.
Заключение
- f-строки Python предоставляют элегантный способ форматирования текстовых строк.
- Python заменяет результат выражения, заключенного в фигурные скобки {}, в f-строку во время выполнения.