Python f-строки

Python f-строка (форматированный строковый литерал) позволяет вставлять переменные или выражения непосредственно в строку, помещая их в фигурные скобки {}.

Этот метод делает код более читаемым и часто работает быстрее других техник форматирования строк.

Пример

name = "Jennifer"
age = 23

# Используем f-строку, чтобы встроить переменные name и age в строку
message = f"My name is {name} and I am {age} years old."

print(message)

# Вывод: My name is Jennifer and I am 23 years old.

Синтаксис Python f-строки

f-строка начинается с f или F, за которым следуют кавычки. Поместите любые переменные или выражения, которые вы хотите встроить, в фигурные скобки {} внутри строки.

Например,

f"string with {expression}"

Здесь:

  • f или F: префикс строки символом f или F обозначает её как f-строку.

  • " ": используйте двойные или одинарные кавычки вокруг строки.

  • {expression}: поместите любую переменную, вычисление или выражение в фигурные скобки {}, чтобы встроить его в строку.


Пример: Python f-строка

language = "Python"

# Используем f-строку, чтобы встроить переменную language в строку
text = f"Learn {language} with 'AlashEd'."

print(text)

Вывод

Learn Python with 'AlashEd'.

В приведённом примере:

  • f"Learn {language} with 'AlashEd'." — это f-строка.

  • {language} — это плейсхолдер для переменной language.


Вычисление выражения внутри f-строки

Вы можете выполнять вычисления непосредственно внутри f-строки. Например,

num1 = 5
num2 = 4

# Вычисляем сумму num1 и num2 внутри f-строки
result = f"Sum of {num1} and {num2} is {num1 + num2}."

print(result)

Вывод

Sum of 5 and 4 is 9.

Здесь {num1 + num2} — это выражение, вычисляемое внутри f-строки.


Плейсхолдер Python f-строки

Вы можете размещать различные выражения внутри плейсхолдера f-строки. Например,

Вызов функций внутри плейсхолдеров

Вы можете вызвать функцию прямо внутри плейсхолдера f-строки, и возвращаемое значение будет встроено в строку.

def greeting():
    return "Good morning"

# Вызываем greeting() внутри f-строки
text = f"{greeting()}, everyone!"

print(text)

# Вывод: Good morning, everyone!

Здесь функция greeting() возвращает "Good morning", которое затем помещается непосредственно в f-строку через {greeting()}.

Использование условных выражений внутри плейсхолдеров

Вы можете использовать условные выражения (if-else) внутри плейсхолдера f-строки, чтобы динамически изменять вывод в зависимости от значений переменных.

age = 18

# Используем условное выражение внутри f-строки
text = f"You are {'an adult' if age >= 18 else 'a minor'}."

print(text)

# Вывод: You are an adult.

В этом примере:

  • { 'an adult' if age >= 18 else 'a minor' } вычисляет условие.

  • Если age равно 18 или больше, выводится "an adult"; иначе — "a minor".

Доступ к значениям словаря внутри плейсхолдера

Вы также можете получать значения словаря прямо внутри f-строк, используя ключ словаря внутри фигурных скобок {}.

person = {"country": "USA", "employee_ID": 121}

# Доступ к значениям словаря внутри f-строки
text = f"Country: {person['country']}, Employee ID: {person['employee_ID']}"

print(text)

# Вывод: Country: USA, Employee ID: 121

В этом примере мы получили значения словаря person внутри f-строки.

Здесь:

  • {person['country']} — плейсхолдер, обращающийся к значению ключа country.

  • {person['employee_ID']} — плейсхолдер, обращающийся к значению ключа employee_ID.

Советы по использованию f-строк

Совет

Как обрабатывать кавычки внутри f-строки?

Если вы используете двойные кавычки для f-строки, используйте одинарные кавычки внутри, и наоборот. Иначе будет синтаксическая ошибка.

Правильно

# Двойные кавычки снаружи, одинарные внутри
text = f"Learn {language} with 'AlashEd'."

# Одинарные кавычки снаружи, двойные внутри
text = f'Learn {language} with "AlashEd".'

Неправильно

# Вызывает синтаксическую ошибку из-за совпадающих кавычек
text = f'Learn {language} with 'AlashEd'.'
text = f"Learn {language} with "AlashEd"."

Примечание

Почему стоит использовать f-строки?

  • Читаемость: f-строки делают код чище и читаемее, встраивая переменные прямо в строки.

  • Скорость: они быстрее старых методов вроде .format(), так как вычисляются во время выполнения.

  • Гибкость: f-строки позволяют выражения и вызовы функций внутри строки.

Коротко: f-строки — быстрый, читаемый и универсальный способ форматирования строк.