Ввод и вывод данных
Мы уже встречались с функцией print() . Она отвечает за вывод данных, по-умолчанию на экран. Если код содержится в файле, то без нее не обойтись. В интерактивном режиме в ряде случаев можно обойтись без нее.
Ввод данных в программу и их вывод важны в программировании. Без ввода программы делали бы одно и то же, исключая случаи, когда в них самих генерируются случайные значения. Вывод позволяет увидеть, использовать, передать дальше результат работы программы.
Обычно требуется, чтобы программа обрабатывала какой-то диапазон различных входных данных, которые поступают в нее из внешних источников. В качестве последних могут выступать файлы, клавиатура, сеть, выходные данные из другой программы. В свою очередь вывод данных, например, возможен в файл, по сети, в базу данных, на принтер. Однако нередко информацию просто выводят на экран монитора.
Можно сказать, что программа – это открытая система, которая обменивается чем-либо с внешней для нее средой. Если живой организм в основном обменивается веществом и энергией, то программа – данными, информацией.
Вывод данных. Функция print()
Что такое функция в программировании, узнаем позже. Пока будем считать, что print() – это такая команда языка Python, которая выводит то, что в ее скобках на экран.
>>> print(1032) 1032 >>> print(2.34) 2.34 >>> print("Hello") Hello
В скобках могут быть любые типы данных. Кроме того, количество данных может быть различным:
>>> print("a:", 1) a: 1 >>> one = 1 >>> two = 2 >>> three = 3 >>> print(one, two, three) 1 2 3
Можно передавать в функцию print() как непосредственно литералы (в данном случае «a:» и 1), так и переменные, вместо которых будут выведены их значения. Аргументы функции (то, что в скобках), разделяются между собой запятыми. В выводе вместо запятых значения разделены пробелом.
Если в скобках стоит выражение, то сначала оно выполняется, после чего print() уже выводит результат данного выражения:
>>> print("hello" + " " + "world") hello world >>> print(10 - 2.5/2) 8.75
В print() предусмотрены дополнительные параметры. Например, через параметр sep можно указать отличный от пробела разделитель строк:
>>> print("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", sep="-") Mon-Tue-Wed-Thu-Fri-Sat-Sun >>> print(1, 2, 3, sep="//") 1//2//3
Параметр end позволяет указывать, что делать, после вывода строки. По-умолчанию происходит переход на новую строку. Однако это действие можно отменить, указав любой другой символ или строку:
>>> print(10, end="") 10>>>
Обычно end используется не в интерактивном режиме, а в скриптах, когда несколько выводов подряд надо разделить не переходом на новую строку, а, скажем, запятыми. Сам переход на новую строку обозначается символом ‘\n’. Если присвоить это значение параметру end , то никаких изменений в работе функции print вы не увидите, так как это значение и так присвоено по-умолчанию:
>>> print(10, end='\n') 10 >>>
Однако, если надо отступить на одну дополнительную строку после вывода, то можно сделать так:
>>> print(10, end='\n\n') 10 >>>
В функцию print нередко передаются так называемые форматированные строки, хотя по смыслу их правильнее называть строки-шаблоны. Никакого отношения к самому print они не имеют. Когда такая строка находится в скобках print() , интерпретатор сначала согласно заданному в ней формату преобразует ее к обычной строке, после чего передает результат в print() .
Форматирование может выполняться в так называемом старом стиле или с помощью строкового метода format . Старый стиль также называют Си-стилем, так как он схож с тем, как происходит вывод на экран в языке C. Рассмотрим пример:
>>> pupil = "Ben" >>> old = 16 >>> grade = 9.2 >>> print("It's %s, %d. Level: %f" % (pupil, old, grade)) It's Ben, 16. Level: 9.200000
Здесь вместо трех комбинаций символов %s , %d , %f подставляются значения переменных pupil , old , grade . Буквы s , d , f обозначают типы данных – строку, целое число, вещественное число. Если бы требовалось подставить три строки, то во всех случаях использовалось бы сочетание %s .
Хотя в качестве значения переменной grade было указано число 9.2, на экран оно вывелось с дополнительными нулями. Чтобы указать, сколько требуется знаков после запятой, надо перед f поставить точку, после нее указать желаемое количество знаков в дробной части:
>>> print("It's %s, %d. Level: %.1f" % (pupil, old, grade)) It's Ben, 16. Level: 9.2
Теперь посмотрим на метод format() :
>>> print("This is a . It's .".format("ball", "red")) This is a ball. It's red. >>> >>> print("This is a . It's .".format("white", "cat")) This is a cat. It's white. >>> >>> print("This is a . It's .".format("a", "number", 1)) This is a 1. It's a number.
В строке в фигурных скобках указаны номера данных, которые будут сюда подставлены. Далее к строке применяется метод format() . В его скобках указываются сами данные (можно использовать переменные). На нулевое место подставится первый аргумент метода format() , на место с номером 1 – второй и т. д.
На самом деле возможности метода format существенно шире, и для их изучения понадобился бы отдельный урок. Нам пока будет достаточно этого.
В новых релизах Питона появился третий способ создания форматированных строк – f-строки. Перед их открывающей кавычкой прописывается буква f . В самой строке внутри фигурных скобок записываются выражения на Python, которые исполняются, когда интерпретатор преобразует строку-шаблон в обычную.
>>> a = 10 >>> b = 1.33 >>> c = 'Box' >>> print(f'qty - , goods - ') qty - 10, goods - Box >>> print(f'price - ') price - 1.5
В примере число 5 после переменной a обозначает количество знакомест, отводимых под вывод значения переменной. В выражении b + 0.2:.1f сначала выполняется сложение, после этого значение округляется до одного знака после запятой.
Ввод данных. Функция input()
За ввод в программу данных с клавиатуры в Python отвечает функция input . Когда вызывается эта функция, программа останавливает свое выполнение и ждет, когда пользователь введет текст. После этого, когда он нажмет Enter , функция input() заберет введенный текст и передаст его программе, которая уже будет обрабатывать его согласно своим алгоритмам.
Если в интерактивном режиме ввести команду input() , то ничего интересного вы не увидите. Компьютер будет ждать, когда вы что-нибудь введете и нажмете Enter или просто нажмете Enter . Если вы что-то ввели, это сразу же отобразиться на экране:
>>> input() Yes! 'Yes!'
Функция input() передает введенные данные в программу. Их можно присвоить переменной. В этом случае интерпретатор не выводит строку сразу же:
>>> answer = input() No, it is not.
В данном случае строка сохраняется в переменной answer , и при желании мы можем вывести ее значение на экран:
>>> answer 'No, it is not.'
При использовании функции print() кавычки в выводе опускаются:
>>> print(answer) No, it is not.
Куда интересней использовать функцию input() в скриптах – файлах с кодом. Рассмотрим такую программу:
name_user = input() city_user = input() print(f'Вас зовут . Ваш город ')
При запуске программы, компьютер ждет, когда будет введена сначала одна строка, потом вторая. Они будут присвоены переменным name_user и city_user . После этого значения этих переменных выводятся на экран с помощью форматированного вывода.
Вышеприведенный скрипт далек от совершенства. Откуда пользователю знать, что хочет от него программа? Чтобы не вводить человека в замешательство, для функции input предусмотрен специальный параметр-приглашение. Это приглашение выводится на экран при вызове input() . Усовершенствованная программа может выглядеть так:
name_user = input('Ваше имя: ') city_user = input('Ваш город: ') print(f'Вас зовут . Ваш город ')

Обратите внимание, что в программу поступает строка. Даже если ввести число, функция input() все равно вернет его строковое представление. Но что делать, если надо получить число? Ответ: использовать функции преобразования типов.

В данном случае с помощью функций int() и float() строковые значения переменных qty и price преобразуются соответственно в целое число и вещественное число. После этого новые численные значения присваиваются тем же переменным.
Программный код можно сократить, если преобразование типов выполнить в тех же строках кода, где вызывается функция input() :
qty = int(input("Сколько апельсинов? ")) price = float(input("Цена одного? ")) summa = qty * price print("Заплатите", summa, "руб.")
Сначала выполняется функция input() . Она возвращает строку, которую функция int() или float() сразу преобразует в число. Только после этого происходит присваивание переменной, то есть она сразу получает численное значение.
Практическая работа
- Напишите программу (файл user.py ), которая запрашивала бы у пользователя:
— его имя (например, «What is your name?»)
— возраст («How old are you?»)
— место жительства («Where are you live?»)
После этого выводила бы три строки:
«This is имя »
«It is возраст »
«(S)he live in место_жительства »
Вместо имя , возраст , место_жительства должны быть данные, введенные пользователем. Примечание: можно писать фразы на русском языке, но если вы планируете стать профессиональным программистом, привыкайте к английскому. - Напишите программу (файл arithmetic.py ), которая предлагала бы пользователю решить пример 4 * 100 — 54. Потом выводила бы на экран правильный ответ и ответ пользователя. Подумайте, нужно ли здесь преобразовывать строку в число.
- Запросите у пользователя четыре числа. Отдельно сложите первые два и отдельно вторые два. Разделите первую сумму на вторую. Выведите результат на экран так, чтобы ответ содержал две цифры после запятой.
Примеры решения и дополнительные уроки в pdf-версии курса
X Скрыть Наверх
Python. Введение в программирование
#3 – Вывод информации. Работа с консолью

Вывод информации – важная часть в любом языке программирования. Мы научимся выводить информацию в консоль, а также прямиком на страницу веб сайта. Дополнительно за урок мы познакомимся с консолью разработчика.
Видеоурок
Язык JavaScript можно использовать в разных сферах: начиная от сайтов и заканчивая создаем игр ( статья на эту тему ) и приложений ( статья на эту тему ). Мы с вами JS будем рассматривать в контексте разработки веб сайтов. По этой причине весь вывод информации мы будем прописывать на страницах сайта.
Вывод на экран
Для вывода информации существует несколько специальных методов. Самый простой способ вывода текста на страницу является использование метода «write». Данный метод наследуется из объекта document .
// Вывод в одной строке document.write("Вывод информации"); // writeln - будет выведен с пропуском строки document.writeln("Вывод информации");
Вы можете использовать этот метод, но его реализация не столь удобна. Метод «document.write» не позволяет указать где и как будет выведена информация.
Работа с консолью
Для вывода данных в консоль обратитесь к объекту console и его методу «log»:
// Вывод информации в консоль console.log("Какая-либо информация");
Просмотреть консоль можно из любого браузера. Для её открытия нажмите F12 или, если вы используете Mac – Cmd+Opt+J .
Функция для вывода в консоль
Есть некоторая программа, в которой есть многочисленные выводы на консоль различных данных для диагностики, иногда их очень много, иногда нет. Хочу сделать возможность отключения отладочной печати переменной bool , но получается некрасивый код в каждом таком сообщении if (bool)
void Comment(string Args, . )
Но надо выводить и int и float переменные и логично, что появляются ошибки.
Отслеживать
8,656 1 1 золотой знак 16 16 серебряных знаков 32 32 бронзовых знака
задан 15 июн 2016 в 9:02
Neuromanser Neuromanser
15 3 3 бронзовых знака
можете попробовать сделать примерно так ru.stackoverflow.com/questions/519741/… ну или что-то аналогичное, или же хотите именно функцией?
15 июн 2016 в 9:07
Может быть, вам нужен паттерн null-object?
15 июн 2016 в 9:11
думаю, вам стоит попробовать сделать аналогично реализации printf, когда одним из параметров передается форматная строка, разбирая которую мы можем определить количество аргументов и их типы ( и соответствующим образом обработать Args. )
Какая функция выводит что либо в консоль
Для вывода информации на консоль предназначена встроенная функция print() . При вызове этой функции ей в скобках передается выводимое значение:
print("Hello METANIT.COM")
Данный код выведет нам на консоль строку «Hello METANIT.COM».
Отличительной особенностью этой функции является то, что по умолчанию она выводит значение на отдельной строке. Например:
print("Hello World") print("Hello METANIT.COM") print("Hello Python")
Здесь три вызова функции print() выводят некоторое сообщение. Причем при выводе на консоль каждое сообщение будет размещаться на отдельной строке:
Hello World Hello METANIT.COM Hello Python
Такое поведение не всегда удобно. Например, мы хотим, чтобы все значения выводились на одной строке. Для этого нам надо настроить поведение функции с помощью параметра end . Этот параметр задает символы, которые добавляются в конце к выводимой строке и . При применении параметра end вызов функции print() выглядит следующим образом:
print(значение, end = конечные_символы)
По умолчанию end равен символу «\n» , который задает перевод на следующую строку. Собственно поэтому функция print по умолчанию выводит передаваемое ей значение на отдельной строке.
Теперь определим, чтобы функция не делала перевод на следующую строку, а выводила значение на той же строке:
print("Hello World", end=" ") print("Hello METANIT.COM", end=" ") print("Hello Python")
То есть теперь выводимые значения будут разделяться пробелом:
Hello World Hello METANIT.COM Hello Python
Причем это может быть не один символ, а набор символов:
print("Hello World", end=" and ") print("Hello METANIT.COM", end=" and ") print("Hello Python")
В данном случае выводимые сообщения будут отделяться символами » and » :
Hello World and Hello METANIT.COM and Hello Python
Консольный ввод
Наряду с выводом на консоль мы можем получать ввод пользователя с консоли, получать вводимые данные. Для этого в Python определена функция input() . В эту функцию передается приглашение к вводу. А результат ввода мы можем сохранить в переменную. Например, определим код для ввода пользователем имени:
name = input("Введите свое имя: ") print(f"Ваше имя: ")
В данном случае в функцию input() передается приглашение к вводу в виде строки «Введите свое имя: «. Результат функции — результат ввода пользователя передается в переменную name . Затем мы можем вывести значение этой переменной на консоль с помощью функции print() . Пример работы кода:
Введите свое имя: Eugene Ваше имя: Eugene
Еще пример с вводом нескольких значений:
name = input("Your name: ") age = input("Your age: ") print(f"Name: Age: ")
Пример работы программы:
Your name: Tom Your age: 37 Name: Tom Age: 37
Стоит учитывать, что все введенные значения рассматриваются как значения типа str , то есть строки. И даже если мы вводим число, как в втором случае в коде выше, то Python все равно будет рассматривать введенное значение как строку, а не как число.
