- Python: вывод данных в консоль
- Функция print и её параметры
- *objects
- sep
- end
- file
- flush
- Форматированный вывод
- Оператор %
- Метод format
- Строковый метод
- centre()
- ljust()
- rjust()
- f-строки
- Поля заданной ширины
- Примеры
- Вывод ошибки
- Вывод списка
- Вывод массива
- Вывод словаря
- Вывод матрицы
- Python How to Print on the Same Line
- ChatGPT Review (and How to Use It)—A Full Guide (2023)
- 10 Best AI Art Generators of 2023 (Reviewed & Ranked)
- How to Make an App — A Complete 10-Step Guide (in 2023)
- 9 Best Graphic Design Courses + Certification (in 2023)
- 8 Best Python Courses with Certifications (in 2023)
- 8 Best Swift & iOS App Development Courses [in 2023]
Python: вывод данных в консоль
При разработке программ постоянно используется вывод данных в консоль. Например, при тестировании функций программы, которая ещё не обзавелась графическим интерфейсом, или как средство нахождения ошибок и отладки кода.
Python предоставляет программисту инструменты, позволяющие не просто выводить данные в консоль, но и форматировать их.
Функция print и её параметры
Функция print() включена в стандартную библиотеку языка Python, как основной инструмент для вывода данных в консоль или любое другое устройство (экран, принтер и так далее).
Программист может настраивать вывод данных, используя аргументы функции:
*objects
Это данные, которые выводятся на экран. Программист передает в функцию сколько угодно объектов, которые автоматически преобразуются в строковый формат и направляются в поток вывода.
Передавая объекты в функцию, программист может их передавать через запятую или использовать конкатенацию. Передача нескольких аргументов не приведёт к конфликту между *objects и другими необязательными аргументами, потому что интерпретатор автоматически распознаёт остальные параметры по ключевому слову (sep, end, file, flush)!
print("apple", "orange" + " banana", "cherry") apple orange banana cherry
sep
Этот аргумент определяет, что будет стоять между переданными объектами. По умолчанию параметр sep имеет значение » «, то есть при выводе нескольких объектов, между ними будет установлен пробел, поменяем его на другой символ, например «-«:
print("Один", "Два", "Три", sep="-") Один-Два-Три
end
Аргумент определяет символ, которым заканчивается выполнение функции print(). По умолчанию это символ переноса строки «\n», то есть после вывода всех данных каретка переходит на следующую строку, и следующий вывод функции print начинается с новой строки. Если нужно, чтобы вывод нескольких print был в одну строку — следует заменить последний символ.
print("Один") print("Два", end=" ") print("Три") Один Два Три
file
Этот аргумент позволяет переопределить поток вывода. По умолчанию установлено значение «sys.stdout», то есть данные выводятся в консоль. Если вместо этого указать какой-нибудь файл, то в данные запишутся в него.
Вот пример скрипта на Python, который откроет файл temp.txt и запишет в него текст с помощью функции print:
with open("temp.txt", "w") as f: print("Write to file", file=f)
flush
Этот необязательный аргумент позволяет отчистить поток вывода. По умолчанию имеет значение False, когда вывод буферизуется, программист может указать значение «True», чтобы вывод производился сразу. Например, если вы пишете в файл данные, то они попадают в буфер и записываются реально в файл когда буфер заполнится или будет закрыт файл.
Аналогично и с выводом в консоль, данные записываются в буфер и выводятся из него в консоль. Если flush выставлен в True, то вывод производится немедленно.
Форматированный вывод
Для того чтобы выведенную в консоль информацию можно было без проблем прочитать и понять, она должна быть форматирована. Python предоставляет программисту инструменты, позволяющие форматировать вывод в консоль разными способами. С их помощью можно даже создать ровную и читаемую таблицу.
Оператор %
Оператор % часто используется для форматирования и хорошо известен не только программистам на Python, но и программистам на C/С++. По сути, оператор % — это метка, вместо которой подставляется значение переменной или выражение. Оператор % размещается непосредственно в выводимой строке, а подставляемые значения — в кортеже после второго %. Пример:
print("Программа номер %2d, получила результат: %5.2f" % (4, 7.3333)) Программа номер 4, получила результат: 7.33
Помимо символа % указывается тип значения, а также, по желанию, длина и точность. Синтаксис выглядит так:
Если рассмотреть пример, можно увидеть, что:
- « %2d » используется для первого элемента кортежа, целого числа «4». Так как после % указана длина «2», а число в кортеже состоит только из одной цифры, в выводе добавится дополнительный пробел.
- « %5.2f » — это формат для чисел с плавающей точкой. «5» — это общее количество цифр, которые должна содержать строка, а «.2» — это количество цифр после запятой.
Метод format
Этот инструмент был добавлен в Python версии 2.6. В сравнении с предыдущем способом format оказывается чуть более громоздким. Программист использует символ «<>», чтобы отметить место, в которое будет подставлена переменная или выражение. Внутри фигурных скобок можно указать имя, тип значения, ширину и точность.
Подставляемые значения указываются в кортеже после ключевого слова format. Их можно указывать как позиционно, так и присваивать по имени. Пример:
print(' января празднует день рождения' .format('Никита', '25', other ='15-ый')) Никита 25 января празднует 15-ый день рождения
Метод format также позволяет форматировать числа, то есть указывать их ширину и точность:
print("Робот № весит " .format(r = 1134, w = 112.5534)) Робот №1134 весит 112.55
Этот способ позволяет очень гибко форматировать вывод данных. Например, программист может передавать в строку данные из готового словаря:
data = dict(name ="Бендер", race ="Робот") print("Это , он - ".format(**data)) Это Бендер, он - Робот
Строковый метод
Вывод с помощью строкового метода формируется с использованием операций среза и методов строк. Для работы со строковым типом данных создано несколько методов, которые позволяют просто и изящно форматировать вывод, среди них методы: ljust() , rjust() , center() .
centre()
Эта функция выравнивает строку по центру в соответствии с указанной шириной, заполняя недостающую ширину пробелами. Она имеет следующий синтаксис:
- str — это строка, которую будем центрировать.
- len – это ширина строки.
- fillchr — символ, которым заполняется недостающее пространство (по умолчанию — пробел).
text = "Этот текст расположен в центре" print(text.center(50)) Этот текст расположен в центре
Важно понимать, что функция располагает текст не в центре консоли, а в центре поля указанной ширины (в примере это 50 символов).
Если поменять символ заполнения, получится следующее:
text = "Этот текст расположен в центре" print(text.center(50, "_")) __________Этот текст расположен в центре__________
ljust()
Метод работает аналогично centre() , только выравнивает текст не по центру, а по левому краю. То есть недостающие символы дополняются не с двух сторон, а только с правой.
rjust()
Метод работает аналогично centre() , но выравнивает текст по правому краю. То есть символы дополняются только с левой стороны.
f-строки
Иногда нужно просто вставить значение переменной в какую-то часть строки. Можно воспользоваться одним из методов форматирования, строить длинные конструкции из комбинаций строк и имён переменных, соединённых запятыми (или «+»), например:
print("Мне", age, ", теперь я могу пойти в", place, "когда захочу")
Однако в Python версии 3.6 в язык был добавлен простой и удобный инструмент, который называется f-строка или интерполированная строка. С его помощью можно удобно вставлять переменные в любое место выводимой строки. Для этого используются фигурные скобки «<>», внутри которых указывается имя переменной, а перед строкой ставится символ «f». Пример:
name = "Боб" age = 25 print(f" сегодня празднует -ый день рождения") Боб сегодня празднует 25-ый день рождения
Поля заданной ширины
В приведённых выше примерах уже использовались инструменты для настройки ширины полей. Ширина поля вывода настраивается с помощью вставки численного значения между знаком «%» и типом вывода (например, «d»). То есть установка ширины поля выглядит так:
Установка ширины полей работает так:
- Интерпретатор получает информацию о численном значении ширины вывода (в примере это «6»).
- Затем он получает информацию о подставляемом значение, то есть считает, из скольки символов оно состоит (в примере это «1»).
- Если количество символов в подставляемом значение меньше, чем ширина строки, при выводе в строку добавляются дополнительные пробелы, иначе значение просто выводится.
Поля заданной ширины жизненно необходимы для вывода в консоль таблиц или двумерных массивов. Из-за разной длинный элементов столбцы искривляются, что приводит к потери читаемости, однако если использовать поля заданной ширины, то пока длинны значений меньше, чем ширина поля, все они будут располагаться строго друг под другом.
Примеры
С помощью форматированного вывода можно полностью настроить любой вывод в консоль, например:
Вывод ошибки
Ниже пример обработки ошибки. Мы перехватываем исключение в блоке except и выводим сообщение о ней с помощью функции print.
try: for i in range(4): if (i == 3): i = text print(f"Попытка прошла успешно") except Exception as err: print("Возникла ошибка: \"<>\"".format(err)) Попытка 0 прошла успешно Попытка 1 прошла успешно Попытка 2 прошла успешно Возникла ошибка: "name 'text' is not defined"
Вывод списка
Ниже пример того как выводится список в одну строку:
a = ['python', 3, 'лучший', 'язык', 'программирования'] for val in a: print(val, end=' ') python 3 лучший язык программирования
Если нужно перечислить элементы списка в столбик с указанием порядковых номеров, то это можно сделать следующим образом:
mylist = ["кот", "собака", "крот", "ёж"] for i, x in enumerate(mylist): print(" : ".format(a = i + 1, b = x)) 1 : кот 2 : собака 3 : крот 4 : ёж
Вывод массива
Здесь выводим массив построчно с указанием номеров элементов.
from array import * arr = array('i', [1,3,6,2,5]) for i in range(len(arr)): print("%d-й элемент массива = %d" %(i, arr[i])) 0-й элемент массива = 1 1-й элемент массива = 3 2-й элемент массива = 6 3-й элемент массива = 2 4-й элемент массива = 5
Вывод словаря
Здесь приведём два варианта для словарей.
Простой вариант:
a = for key, value in a.items(): print(": ".format(key,value)) 1: one 2: two 3: three
В виде таблицы:
arr = print(" _________________ ") print("| Rus : Eng |") print("|-----------------|") for key, value in arr.items(): print("| : |".format(r = key, w = value)) print("|-----------------|") _________________ | Rus : Eng | |-----------------| | Один : one | | Два : two | | Три : three | |-----------------|
Вывод матрицы
Сложность в выводе матрицы состоит в том, что из-за разных длин чисел элементы столбца будут стоять не друг под другом, а со смещением. С помощью форматирования можно решить эту проблему.
mtx = [[ 2, 4, 12], [ -6, 3, 9], [334, 0, 11]] for row in mtx: for x in row: print("%3d" %(x), end = " ") print() 2 4 12 -6 3 9 334 0 11
Здесь мы создали матрицу в виде двумерных списков, но если вы работаете с матрицами с помощью библиотеки NumPy, то там вывод в консоль форматируется автоматически.
Python How to Print on the Same Line
I make Coding & Tech easy and fun with well-thought how-to guides and reviews.
I’ve already helped 5M+ visitors reach their goals!
ChatGPT Review (and How to Use It)—A Full Guide (2023)
ChatGPT is the newest Artificial Intelligence language model developed by OpenAI. Essentially, ChatGPT is an AI-based chatbot that can answer any question. It understands complex topics, like.
10 Best AI Art Generators of 2023 (Reviewed & Ranked)
Choosing the right type of AI art generator is crucial to produce unique, original, and professional artwork. With the latest advancements in AI art generation, you can.
How to Make an App — A Complete 10-Step Guide (in 2023)
Are you looking to create the next best-seller app? Or are you curious about how to create a successful mobile app? This is a step-by-step guide on.
9 Best Graphic Design Courses + Certification (in 2023)
Do you want to become a versatile and skilled graphic designer? This is a comprehensive article on the best graphic design certification courses. These courses prepare you.
8 Best Python Courses with Certifications (in 2023)
Are you looking to become a professional Python developer? Or are you interested in programming but don’t know where to start? Python is a beginner-friendly and versatile.
8 Best Swift & iOS App Development Courses [in 2023]
Are you looking to become an iOS developer? Do you want to create apps with an outstanding design? Do you want to learn to code? IOS App.