Вопрос 11 из 16
Основы Python
Как выполняется интерполяция строк?
Показать ответ
Короткий ответ
- f-строки: f"Hello {name}"
- Метод format(): "Hello {}".format(name)
- Оператор %: "Hello %s" % name
Развернутый ответ
Интерполяция строк в Python позволяет встраивать выражения и переменные внутрь строковых литералов. Вот основные современные способы:
1. f-строки (Python 3.6+) — рекомендуемый способ
name = "Анна"
age = 25
# Базовый синтаксис
message = f"Привет, {name}! Тебе {age} лет."
print(message) # Привет, Анна! Тебе 25 лет.
# Вычисления внутри f-строк
print(f"Через 5 лет тебе будет {age + 5} лет.")
# Форматирование чисел
price = 19.99
print(f"Цена: {price:.2f} руб.") # Цена: 19.99 руб.
# Многострочные f-строки
html = f"""
<div>
<h1>{name}</h1>
<p>Возраст: {age}</p>
</div>
"""
2. Метод format()
# Позиционные аргументы
"Привет, {}! Тебе {} лет.".format(name, age)
# Именованные аргументы
"Имя: {name}, Возраст: {age}".format(name=name, age=age)
# Форматирование чисел
"Баланс: {:.2f}".format(123.456) # Баланс: 123.46
3. %-форматирование (устаревший способ)
# Для подстановки значений
"Привет, %s! Тебе %d лет." % (name, age)
# Форматирование чисел
"Процент: %.1f%%" % 99.5 # Процент: 99.5%
4. Шаблоны строк (string.Template)
from string import Template
t = Template("Привет, $name! Тебе $age лет.")
print(t.substitute(name=name, age=age))
5. Продвинутые возможности f-строк
# Вызов функций
print(f"Имя в верхнем регистре: {name.upper()}")
# Доступ к элементам коллекций
colors = ["red", "green", "blue"]
print(f"Первый цвет: {colors[0]}")
# Использование выражений
a, b = 5, 10
print(f"Сумма: {a + b}")
# Вывод repr и str
value = "текст"
print(f"{value!r}") # repr: 'текст'
print(f"{value!s}") # str: текст
6. Форматирование в f-строках
Тип | Пример | Результат |
---|---|---|
Числа | f"{1000:,}" |
1,000 |
Проценты | f"{0.25:.1%}" |
25.0% |
Дата | f"{datetime.now():%Y-%m-%d}" |
2023-05-15 |
Выравнивание | f"{'text':>10}" |
" text" |
Рекомендации:
- Используйте f-строки для Python 3.6+ (самый читаемый и производительный вариант)
- Метод
format()
подходит для сложных случаев или когда нужна совместимость с более старыми версиями Python - Избегайте %-форматирования в новом коде
- Шаблоны полезны, когда строки задаются пользователем
F-строки обеспечивают максимальную выразительность и производительность для интерполяции строк в современных версиях Python.