Python - Форматирование вывода

Добро пожаловать, амбициозные программисты! Сегодня мы погружаемся в захватывающий мир форматирования вывода в Python. Как ваш добрый сосед-компьютерный учитель, я здесь, чтобы вести вас через это путешествие шаг за шагом. Не волнуйтесь, если вы новичок в программировании – мы начнем с основ и будем двигаться вверх. Так что взять свой любимый напиток, удобно расположиться и давайте отправимся в это приключение с Python вместе!

Python - Output Formatting

Форматирование вывода в Python

Перед тем как погружаться в детали, давайте поговорим о том, почему важно форматировать вывод. Представьте себе, что вы печете торт – конечно, важны ингредиенты, но как вы его представите, это делает все разницу! То же самое и с программированием. Ваш код может работать идеально, но представление вывода в четком, читаемом формате может сделать вашу программу гораздо более удобной и профессиональной.

Основная функция вывода

Начнем с самого простого способа вывода в Python – функции print().

print("Привет, мир!")

Это выведет: Привет, мир!

Просто, правда? Но что если мы хотим сделать что-то более сложное? Вот тут на помощь приходит форматирование!

Использование оператора modulo для строк (%)

Оператор modulo для строк % – один из самых старых методов форматирования в Python. Это как винтажный автомобиль форматирования – немного старомодный, но все еще выполняет свою задачу.

name = "Алиса"
age = 25
print("Мое имя %s и мне %d лет." % (name, age))

Вывод: Мое имя Алиса и мне 25 лет.

Здесь %s – это占位符 для строк, а %d – для целых чисел. Это как оставить пустые места в предложении и заполнить их позже!

Использование метода format()

Метод format() – как более крутой, младший брат оператора modulo. Он более гибкий и легко читается.

name = "Боб"
age = 30
print("Мое имя {} и мне {} лет.".format(name, age))

Вывод: Мое имя Боб и мне 30 лет.

Вы также можете использовать нумерованные占位符ы:

print("Кот в {0} весит {2} фунтов.".format("шляпе", "кот", 5))

Вывод: Кот в шляпе весит 5 фунтов.

Использование F-strings

F-strings, введенные в Python 3.6, – новенькие на улице. Они быстрые, читаемые и мои личные любимые!

name = "Чарли"
age = 35
print(f"Мое имя {name} и мне {age} лет.")

Вывод: Мое имя Чарли и мне 35 лет.

F-strings позволяют вам помещать выражения прямо в фигурные скобки:

x = 10
y = 20
print(f"Сумма {x} и {y} равна {x + y}")

Вывод: Сумма 10 и 20 равна 30

Правило преобразования формата в Python

Иногда вам нужно преобразовать типы данных для форматирования. Python предоставляет вам это!

pi = 3.14159
print(f"Пи с двумя знаками после запятой: {pi:.2f}")

Вывод: Пи с двумя знаками после запятой: 3.14

Вот полезная таблица общих спецификаторов формата:

Спецификатор Описание
d Целое число
f Дробное число
s Строка
x Шестнадцатеричное
o Восьмеричное
e Научное

Шаблонные строки

Шаблонные строки – это как мад либс для Python. Они отлично подходят, когда вы работаете с пользовательским вводом или хотите отделить форматирование от кода.

from string import Template

t = Template("$name $age лет")
result = t.substitute(name="Давид", age=40)
print(result)

Вывод: Давид 40 лет

Модуль textwrap

Модуль textwrap – ваш лучший друг при работе с длинными строками. Он помогает вам оборачивать и форматировать текст, делая его более читаемым.

import textwrap

long_string = "Это очень длинная строка, которую мы хотим обернуть, чтобы сделать ее более читаемой на экране или в печати."
wrapped = textwrap.wrap(long_string, width=30)

for line in wrapped:
print(line)

Вывод:

Это очень длинная строка,
которую мы хотим обернуть,
чтобы сделать ее более
читаемой на экране или в
печати.

Функция shorten()

Иногда вам просто нужно обрезать строку. Функция shorten() идеально подходит для этого:

import textwrap

long_string = "Это очень длинная строка, которую мы хотим сократить."
shortened = textwrap.shorten(long_string, width=25, placeholder="...")
print(shortened)

Вывод: Это очень длинная...

Модуль pprint

Наконец, давайте поговорим о модуле pprint (прекрасная печать). Он отлично подходит для печати сложных структур данных в более читаемом формате.

from pprint import pprint

complex_data = {'name': 'Ева', 'age': 45, 'hobbies': ['чтение', 'игры', 'пешие прогулки'], 'family': {'spouse': 'Адам', 'children': ['Каин', 'Авель']}}

print("Обычная печать:")
print(complex_data)

print("\nПрекрасная печать:")
pprint(complex_data)

Вывод:

Обычная печать:
{'name': 'Ева', 'age': 45, 'hobbies': ['чтение', 'игры', 'пешие прогулки'], 'family': {'spouse': 'Адам', 'children': ['Каин', 'Авель']}}

Прекрасная печать:
{'age': 45,
'family': {'children': ['Каин', 'Авель'], 'spouse': 'Адам'},
'hobbies': ['чтение', 'игры', 'пешие прогулки'],
'name': 'Ева'}

Итак, друзья! Мы путешествовали по земле форматирования вывода в Python, от базовой функции print до элегантного модуля pprint. Помните, хорошее форматирование – это как хорошие манеры – оно делает все более приятным и легко понятным.

По мере продолжения вашего путешествия с Python, продолжайте экспериментировать с этими техниками форматирования. Скоро вы будете создавать выводы, которые не только функциональны, но и просто великолепны. Счастливого кодирования, и愿 ваш выводы всегда были идеально форматированы!

Credits: Image by storyset