F-строки в Python: использование для форматирования на примерах

В этом уроке вы узнаете о F-строках Python и о том, как их использовать для форматирования строк и повышения читабельности вашего кода.

Содержание

Введение в 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-строку во время выполнения.
Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *