Метод format()

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

В этом уроке мы познакомимся с одним из самых гибких инструментов для работы со строками в Python — методом `.format()`. Этот метод позволяет создавать строки по шаблону, вставляя в них нужные данные. Это гораздо удобнее и читабельнее, чем склеивать строки с помощью знака `+`.

Вы научитесь вставлять переменные в текст, использовать именованные аргументы для большей ясности и управлять отображением чисел: задавать количество знаков после запятой, выравнивать текст и многое другое. Эти навыки незаменимы для вывода информации в красивом и структурированном виде, будь то простое сообщение для пользователя или сложный отчет. Мы начнем с простых примеров и постепенно перейдем к более продвинутым техникам форматирования с использованием специальных плейсхолдеров.

Список тем

Базовое форматирование строки

id: 39973_task_format_1

Давайте создадим первое отформатированное сообщение. В коде уже есть шаблон строки с одним плейсхолдером `{}`. Ваша задача — передать в метод `.format()` строковое значение, чтобы получилось приветствие "Привет, Python!".

Заполните пропуски
message_template = "Привет, {}!"
print(message_template.format(input1S))
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Несколько аргументов

id: 39973_task_format_2

Метод `.format()` может работать с несколькими значениями одновременно. Вставьте в метод переменные `item` и `quantity` в правильном порядке, чтобы программа вывела "На складе есть Яблоки в количестве 15 кг."

Заполните пропуски
item = "Яблоки"
quantity = 15
print("На складе есть {} в количестве {} кг.".format(input1S, input2S))
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Порядок имеет значение

id: 39973_task_format_3

Иногда порядок аргументов в `.format()` не совпадает с порядком плейсхолдеров в строке. Для этого в плейсхолдерах можно указывать номера аргументов (нумерация с 0). Предскажите, что выведет данный код.

Выберите правильный вариант ответа
print("{1} продает {0}, а {2} покупает {0}".format("яблоки", "Анна", "Иван"))
Сообщения
Проверить
Показать подсказку

Именованные аргументы

id: 39973_task_format_4

Чтобы не путаться в порядке, можно давать аргументам имена и использовать их в плейсхолдерах. Соберите вызов метода `.format()`, используя токены из банка, чтобы сформировать строку о пользователе.

Нужно правильно расставить в пропуски предложенные варианты
user_info = "Пользователь: {name}, Возраст: {age}"
print(user_info.format(input1S, input2S))
name='Алекс'
age=33
'Алекс'
33
name=Алекс
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Исправьте ошибку в плейсхолдерах

id: 39973_task_format_5

В этом коде допущена синтаксическая ошибка при определении плейсхолдеров. Найдите и исправьте строку с ошибкой, чтобы программа корректно вывела информацию о книге.

Найдите ошибку и исправьте
book = "1984"
author = "Джордж Оруэлл"
print("Книга [book] была написана автором [author]".format(book=book, author=author))
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Предскажите результат с форматированием числа

id: 39973_task_format_6

Метод `.format()` позволяет не только подставлять значения, но и форматировать их. В этом примере используется спецификатор для форматирования числа с плавающей точкой. Введите, что именно выведет этот код.

Что должно получиться?
price = 45.996
print("Итоговая цена: {:.2f}".format(price))
Сообщения
Проверить
Показать подсказку

Сопоставьте спецификаторы форматирования

id: 39973_task_format_7

Внутри плейсхолдеров можно использовать специальные коды (спецификаторы), которые управляют внешним видом вывода. Сопоставьте спецификаторы форматирования в правой колонке с их описанием в левой.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Форматирует число как целое (десятичное)
Форматирует число с плавающей точкой (дробное)
Умножает число на 100 и выводит со знаком процента
Выравнивает текст по правому краю
Выравнивает текст по центру
:f
:%
:d
:^
:>
Сообщения
Проверить
Показать подсказку

Выравнивание и заполнение

id: 39973_task_format_8

Что выведет этот код? Здесь используется выравнивание по центру `^` внутри поля шириной 11 символов, а в качестве заполнителя вместо пробела используется символ `*`.

Выберите правильный вариант ответа
print("{:*^11}".format("Python"))
Сообщения
Проверить
Показать подсказку

Соберите код для форматирования отчета

id: 39973_task_format_9

Соберите из фрагментов работающий скрипт. Скрипт должен объявлять переменные для города и температуры, а затем выводить отформатированное сообщение: "Погода в городе Москва: 23.5 C". Одна из строк лишняя.

Перетяните в правильном порядке строки из одного блока в другой
print(template.format(city=city_name, temp=temperature))
city_name = "Москва"
temperature = 23.5
print(city_name, temperature)
template = "Погода в городе {city}: {temp} C"
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Неверный тип спецификатора

id: 39973_task_format_10

Программа пытается вывести целое число, но использует для этого неподходящий спецификатор форматирования, что приведет к ошибке `ValueError`. Исправьте спецификатор в строке с `print`, чтобы код заработал.

Найдите ошибку и исправьте
count = 100
print("В наличии {0:f} единиц товара.".format(count))
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру