Поиск и форматирование строк
Уроки курсаПоиск и форматирование строк
F-строки с выражениями внутри {}
F-строки знакомы с базового уровня: f'Привет, {name}!' подставляет значение переменной. Но фигурные скобки принимают не только имена переменных — внутри можно написать любое Python-выражение, и оно вычислится в момент создания строки.
Это значит, что можно вставлять арифметику, вызовы функций, обращения к методам строк и даже условные выражения — всё без предварительного сохранения в отдельную переменную.
name = 'Alice'
words = ['яблоко', 'груша', 'слива']
temperature = -5
print(f'Длина имени: {len(name)}') # Длина имени: 5
print(f'Заглавными: {name.upper()}') # Заглавными: ALICE
print(f'Два в восьмой: {2 ** 8}') # Два в восьмой: 256
print(f'Первый элемент: {words[0].upper()}') # Первый элемент: ЯБЛОКО
print(f'Мороз: {"да" if temperature < 0 else "нет"}') # Мороз: да
Каждое выражение в {} — это полноценный Python-код. Интерпретатор вычисляет его и подставляет результат в строку.
Несколько практических случаев, где это удобно:
- Когда нужно показать длину строки или списка прямо в сообщении —
f'Введено символов: {len(user_input)}'вместо двух строк кода. - Когда нужно привести значение к нужному виду на лету —
f'Логин: {username.lower().strip()}'. - Когда результат зависит от условия — тернарное выражение прямо внутри
{}.
Важная оговорка: выражение внутри {} не должно содержать обратную косую черту \. Если нужно использовать спецсимволы, лучше вычислить значение заранее и подставить переменную. Кавычки внутри {} можно использовать, но они должны отличаться от кавычек самой f-строки — как в примере с тернарным выражением выше, где строка обёрнута в одинарные кавычки, а внутри использованы двойные.
Эта возможность пригодится в следующем разделе: функция форматирования отчётной строки будет собирать результаты find(), count(), startswith() прямо внутри f-строки, без промежуточных переменных для каждого значения.
