Управление выводом в языке Python: от print до продвинутого форматирования

Раздел: Основы Python -> Файловый ввод-вывод

Основной способ вывода в Python: функция print()

Наиболее распространённый и рекомендуемый подход для вывода данных в Python - использование встроенной функции print(). Этот метод подходит для большинства задач: от отладки до вывода результатов пользователю.

Как вывести строку или число на экран?

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

ввод программ на python (ввод данных в программе python)

Привет, мир!
42

Python file io (ввод-вывод файлов в python)

Функция print() принимает произвольное количество аргументов и выводит их, разделяя пробелом по умолчанию, с переводом строки в конце.

Типичная ошибка: забыть кавычки для строки. Если написать print(Привет), Python попытается найти переменную Привет. Решение: всегда заключать строковые литералы в кавычки.

Как вывести несколько значений через запятую без пробелов?

print("a", "b", "c", sep=",")

Python temp files (временные файлы в python)

a,b,c

Python index files (индексация файлов в python)

Параметр sep позволяет задать произвольный разделитель между выводимыми значениями.

Как вывести результат без перевода строки?

print("Первая строка", end=" ") 
print("продолжение")

File python class (класс для работы с файлами в python)

Первая строка продолжение

Python file utf 8 (кодировка utf-8 для файлов в python)

Параметр end заменяет символ перевода строки на указанный (в примере - пробел).

Как вывести отформатированную строку с подстановкой переменных?

name = "Анна"
age = 25
print(f"Меня зовут {name}, мне {age} лет.")

Python config files (конфигурационные файлы в python)

Меня зовут Анна, мне 25 лет.

Python copy file (копирование файла в python)

f-строки (Python 3.6+) обеспечивают читаемый и гибкий способ вставки значений в строку. Внутри фигурных скобок можно помещать выражения.

Проблема: вложенные фигурные скобки или кавычки внутри f-строки. Например, f"{{" выведет {. Для вывода фигурной скобки нужно удвоить её.

Как вывести данные в файл, а не на экран?

with open("output.txt", "w", encoding="utf-8") as f:
    print("Текст для файла", file=f)

Python log file (логирование в файл в python)

Параметр file принимает файловый объект. Запись происходит без лишних преобразований.

Ошибка: забыть закрыть файл. Использование контекстного менеджера with гарантирует закрытие файла после выхода из блока.

Как вывести значение переменной вместе с её именем для отладки?

x = 10
print(f"{x = }")

Python file methods (методы работы с файлами в python)

x = 10

File models in python (модели файлов в python)

В f-строках можно использовать конструкцию {variable=}, которая выводит имя переменной и её значение.

Как вывести список или словарь красиво?

data = {"city": "Москва", "temp": 15}
import json
print(json.dumps(data, ensure_ascii=False, indent=2))

File handle python (обработка файлов в python)

{
  "city": "Москва",
  "temp": 15
}

Модуль json позволяет форматировать вывод вложенных структур.

- Python line find (поиск строки в файле python)
- Python csv file (работа с csv файлами в python)
- Python работа с данными файла (работа с данными из файла в python)

Расширенные примеры вывода в Python

Ниже представлены более сложные и нестандартные сценарии использования вывода в Python.

Пример 1. Вывод с динамическим форматированием чисел

Пример
value = 123.456789
print(f"{value:.2f}")         # два знака после запятой
print(f"{value:10.2f}")      # ширина поля 10 символов
print(f"{value:010.2f}")     # заполнение нулями слева
123.46
    123.46
0000123.46

Аналогичный результат достигается методом format(): print("{:.2f}".format(value)).

Пример 2. Вывод табличных данных с выравниванием

Пример
header = ["Имя", "Возраст", "Город"]
rows = [
    ["Анна", 25, "Москва"],
    ["Иван", 30, "Санкт-Петербург"],
    ["Мария", 22, "Казань"]
]

# Использование f-строк с заданной шириной
for row in [header] + rows:
    print(f"{row[0]:20} {row[1]:10} {row[2]:20}")
Имя                   Возраст    Город               
Анна                  25         Москва              
Иван                  30         Санкт-Петербург      
Мария                 22         Казань              

Ширина полей подбирается под максимальную длину данных. Для автоматического выравнивания можно использовать tabulate из сторонних библиотек.

Пример 3. Вывод прогресс-бара в консоли (без перевода строки)

Пример
import time
for i in range(10):
    bar = "#" * (i + 1) + "-" * (9 - i)
    print(f"\rПрогресс: [{bar}] {i+1}/10", end="")
    time.sleep(0.2)
print()  # переход на новую строку после завершения

Символ \r возвращает каретку в начало строки, позволяя перезаписывать её.

Пример 4. Вывод в стандартный поток ошибок

Пример
import sys
sys.stderr.write("Это сообщение об ошибке\n")

Поток sys.stderr не смешивается с обычным выводом. Полезно для разделения диагностики и результатов.

Пример 5. Вывод с использованием форматирования строк по спецификации (printf-style)

Пример
name = "Мир"
print("Привет, %s!" % name)
number = 42
print("Ответ: %d, шестнадцатеричный: %x" % (number, number))
Привет, Мир!
Ответ: 42, шестнадцатеричный: 2a

Этот стиль унаследован из C и менее читаем, чем f-строки, но иногда встречается в старом коде.

Пример 6. Множественный вывод с разделением строки на части

Пример
parts = ["Python", " - ", "это", " ", "удобно"]
print(*parts, sep="")  # распаковка списка как аргументов
Python - это удобно

Оператор * распаковывает список, а sep="" убирает пробелы между элементами.

Пример 7. Вывод с использованием модуля pprint (pretty print)

Пример
from pprint import pprint
complex_data = {"a": [1, 2, {"b": 3}], "c": (4, 5)}
pprint(complex_data, width=30, compact=True)
{'a': [1, 2, {'b': 3}],
 'c': (4, 5)}

Модуль pprint автоматически форматирует сложные структуры.

Пример 8. Вывод Unicode-символов и эмодзи

Пример
print("Смайлик: \U0001F600")
print("Дельта: \u0394")
Смайлик: ?
Дельта: Δ

Для корректного отображения необходима поддержка Unicode в терминале.

вывод кода Python - comments

En
вывести код python (python)