Что напечатает программа print 3
Перейти к содержимому

Что напечатает программа print 3

  • автор:

 

ВЫВОД В PYTHON

Обеспечением вывода в Python заведует функция print(). Она печатает то, что мы поместим внутрь скобок этой функции в качестве аргументов.

Рассмотрим несколько вариантов применения print().

Напечатаем для начала значение, заданное переменной a. Получим: Напечатаем значения двух переменных. Получим: Теперь напечатаем значения двух переменных в одном print(). Получим: В качестве аргумента может выступать сложное выражение. Получим: Можно напечатать строку. Строки в программах должны обрамляться двойными кавычками или апострофами (одинарными кавычками). Получим: Напечатаем значение переменной a, число, строку и числовое выражение. Получим: Каждый print() начинает печатать с новой строки. Происходит это в результате того, что print() заканчивает напечатанную строку символом перевода строки \n. Получим: Чтобы запретить добавлять перевод строки, следует воспользоваться необязательным параметром end, который заменит перевод строки на то, что мы хотим. Получим: У первого print() мы заменили перевод строки на пробел, а у второго print() на два дефиса. В результате замены символа перевода строки мы получили результат, напечатанный в одну строку.

У функции print() существует также очень полезный необязательный параметр sep, который заменяет стандартный разделитель в виде одного пробела на тот, который мы укажем в параметре sep. Получим: Или поставим в качестве разделителя символ перевода строки. Получим: И в заключение. Попробуем изменить программу из урока «Программы в Python». Переместим вычислительную часть в функцию print(), добавив пояснение. Получим:

§ 7 Оператор print.

Оператор PRINT осуществляет вывод на экран алфавитно-цифровой информации и результатов вычислений.

Общий вид оператора PRINT:

PRINT список вывода

В списке вывода могут быть как числовые и строковые константы, так и имена переменных. Например:

Выводит на экран число 15

Выводит на экран текстовую константу “число”

Выводит на экран значение переменной А(при А=5)

Выводит значение выражения

Список вывода может содержать смешанные данные, т.е. и константы, и величины. Данные в списке могут быть разделены “;” или “,”. В конце списка так же может стоять один из этих знаков.

Чтобы элементы списка вывести подряд в одной строке, в операторе PRINT их разделяют запятыми или точкой с запятой. Если же этот знак стоит в конце списка вывода, то следующая команда PRINT продолжит вывод в этой же строке.

Если элементы списка разделены точкой с запятой, то они выводятся в одной строке через одну позицию. Элементы списка вывода, разделенные запятыми, выводятся каждый с новой зоны строки. Строка разбивается на зоны по 14 символов.

PRINT “— четные числа”

2 4 6— четные числа

14 14

Функция print#

Функция print уже не раз использовалась в книге, но до сих пор не рассматривался ее полный синтаксис:

Функция print выводит все элементы, разделяя их значением sep, и завершает вывод значением end.

Все элементы, которые передаются как аргументы, конвертируются в строки:

Для функций f и range результат равнозначен применению str():

Параметр sep контролирует то, какой разделитель будет использоваться между элементами.

По умолчанию используется пробел:

Можно изменить значение sep на любую другую строку:

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

В некоторых ситуациях функция print может заменить метод join:

Параметр end контролирует то, какое значение выведется после вывода всех элементов. По умолчанию используется перевод строки:

Можно изменить значение end на любую другую строку:

Параметр file контролирует то, куда выводятся значения функции print. По умолчанию все выводится на стандартный поток вывода — sys.stdout.

Python позволяет передавать file как аргумент любой объект с методом write(string). За счет этого с помощью print можно записывать строки в файл:

flush#

По умолчанию при записи в файл или выводе на стандартный поток вывода вывод буферизируется. Параметр flush позволяет отключать буферизацию.

Пример скрипта, который выводит число от 0 до 10 каждую секунду (файл print_nums.py):

Попробуйте запустить скрипт и убедиться, что числа выводятся раз в секунду.

Теперь, аналогичный скрипт, но числа будут выводиться в одной строке (файл print_nums_oneline.py):

Попробуйте запустить функцию. Числа не выводятся по одному в секунду, а выводятся все через 10 секунд.

Это связано с тем, что при выводе на стандартный поток вывода flush выполняется после перевода строки.

Python: вывод данных в консоль

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

Python предоставляет программисту инструменты, позволяющие не просто выводить данные в консоль, но и форматировать их.

Функция print и её параметры

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

 

Программист может настраивать вывод данных, используя аргументы функции:

*objects

Это данные, которые выводятся на экран. Программист передает в функцию сколько угодно объектов, которые автоматически преобразуются в строковый формат и направляются в поток вывода.

Передавая объекты в функцию, программист может их передавать через запятую или использовать конкатенацию. Передача нескольких аргументов не приведёт к конфликту между *objects и другими необязательными аргументами, потому что интерпретатор автоматически распознаёт остальные параметры по ключевому слову (sep, end, file, flush)!

Вот пример:

Этот аргумент определяет, что будет стоять между переданными объектами. По умолчанию параметр sep имеет значение » «, то есть при выводе нескольких объектов, между ними будет установлен пробел, поменяем его на другой символ, например «-«:

Аргумент определяет символ, которым заканчивается выполнение функции print(). По умолчанию это символ переноса строки «\n», то есть после вывода всех данных каретка переходит на следующую строку, и следующий вывод функции print начинается с новой строки. Если нужно, чтобы вывод нескольких print был в одну строку — следует заменить последний символ.

Вот пример:

Этот аргумент позволяет переопределить поток вывода. По умолчанию установлено значение «sys.stdout», то есть данные выводятся в консоль. Если вместо этого указать какой-нибудь файл, то в данные запишутся в него.

Вот пример скрипта на Python, который откроет файл temp.txt и запишет в него текст с помощью функции print:

flush

Этот необязательный аргумент позволяет отчистить поток вывода. По умолчанию имеет значение False, когда вывод буферизуется, программист может указать значение «True», чтобы вывод производился сразу. Например, если вы пишете в файл данные, то они попадают в буфер и записываются реально в файл когда буфер заполнится или будет закрыт файл.

Аналогично и с выводом в консоль, данные записываются в буфер и выводятся из него в консоль. Если flush выставлен в True, то вывод производится немедленно.

Форматированный вывод

Для того чтобы выведенную в консоль информацию можно было без проблем прочитать и понять, она должна быть форматирована. Python предоставляет программисту инструменты, позволяющие форматировать вывод в консоль разными способами. С их помощью можно даже создать ровную и читаемую таблицу.

Оператор %

Оператор % часто используется для форматирования и хорошо известен не только программистам на Python, но и программистам на C/С++. По сути, оператор % — это метка, вместо которой подставляется значение переменной или выражение. Оператор % размещается непосредственно в выводимой строке, а подставляемые значения — в кортеже после второго %. Пример:

Помимо символа % указывается тип значения, а также, по желанию, длина и точность. Синтаксис выглядит так:

Если рассмотреть пример, можно увидеть, что:

  • « %2d » используется для первого элемента кортежа, целого числа «4». Так как после % указана длина «2», а число в кортеже состоит только из одной цифры, в выводе добавится дополнительный пробел.
  • « %5.2f » — это формат для чисел с плавающей точкой. «5» — это общее количество цифр, которые должна содержать строка, а «.2» — это количество цифр после запятой.

Метод format

Этот инструмент был добавлен в Python версии 2.6. В сравнении с предыдущем способом format оказывается чуть более громоздким. Программист использует символ «<>», чтобы отметить место, в которое будет подставлена переменная или выражение. Внутри фигурных скобок можно указать имя, тип значения, ширину и точность.

Подставляемые значения указываются в кортеже после ключевого слова format. Их можно указывать как позиционно, так и присваивать по имени. Пример:

Метод format также позволяет форматировать числа, то есть указывать их ширину и точность:

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

Строковый метод

Вывод с помощью строкового метода формируется с использованием операций среза и методов строк. Для работы со строковым типом данных создано несколько методов, которые позволяют просто и изящно форматировать вывод, среди них методы: ljust() , rjust() , center() .

centre()

Эта функция выравнивает строку по центру в соответствии с указанной шириной, заполняя недостающую ширину пробелами. Она имеет следующий синтаксис:

Здесь:

  • str — это строка, которую будем центрировать.
  • len – это ширина строки.
  • fillchr — символ, которым заполняется недостающее пространство (по умолчанию — пробел).

Пример:

Если поменять символ заполнения, получится следующее:

ljust()

Метод работает аналогично centre() , только выравнивает текст не по центру, а по левому краю. То есть недостающие символы дополняются не с двух сторон, а только с правой.

rjust()

Метод работает аналогично centre() , но выравнивает текст по правому краю. То есть символы дополняются только с левой стороны.

f-строки

Иногда нужно просто вставить значение переменной в какую-то часть строки. Можно воспользоваться одним из методов форматирования, строить длинные конструкции из комбинаций строк и имён переменных, соединённых запятыми (или «+»), например:

Однако в Python версии 3.6 в язык был добавлен простой и удобный инструмент, который называется f-строка или интерполированная строка. С его помощью можно удобно вставлять переменные в любое место выводимой строки. Для этого используются фигурные скобки «<>», внутри которых указывается имя переменной, а перед строкой ставится символ «f». Пример:

Поля заданной ширины

В приведённых выше примерах уже использовались инструменты для настройки ширины полей. Ширина поля вывода настраивается с помощью вставки численного значения между знаком «%» и типом вывода (например, «d»). То есть установка ширины поля выглядит так:

Установка ширины полей работает так:

  • Интерпретатор получает информацию о численном значении ширины вывода (в примере это «6»).
  • Затем он получает информацию о подставляемом значение, то есть считает, из скольки символов оно состоит (в примере это «1»).
  • Если количество символов в подставляемом значение меньше, чем ширина строки, при выводе в строку добавляются дополнительные пробелы, иначе значение просто выводится.

Примеры

С помощью форматированного вывода можно полностью настроить любой вывод в консоль, например:

Вывод ошибки

Ниже пример обработки ошибки. Мы перехватываем исключение в блоке except и выводим сообщение о ней с помощью функции print.

Вывод списка

Ниже пример того как выводится список в одну строку:

Если нужно перечислить элементы списка в столбик с указанием порядковых номеров, то это можно сделать следующим образом:

Вывод массива

Здесь выводим массив построчно с указанием номеров элементов.

Вывод словаря

Здесь приведём два варианта для словарей.

Простой вариант:

В виде таблицы:

Вывод матрицы

Сложность в выводе матрицы состоит в том, что из-за разных длин чисел элементы столбца будут стоять не друг под другом, а со смещением. С помощью форматирования можно решить эту проблему.

Здесь мы создали матрицу в виде двумерных списков, но если вы работаете с матрицами с помощью библиотеки NumPy, то там вывод в консоль форматируется автоматически.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *