Вывод данных
Для вывода данных в Python можно использовать функцию Print(), которая имеет следующий формат:
print([<Значения через запятую>][, sep=' '][, end='\n'][, file=sys.stdout][, flush=False])
При необходимости указанные значения можно конвертировать в строки и перенаправить в поток вывода stdout. Параметр file позволяет переслать данные в другое место, например, в файл. При установке параметра flush в значение False запись в файл будет производиться принудительно.
Если производится вывод только одного значения, после вывода добавляется стандартный символ перевода строки. Если при вызове print() передается несколько значений через запятую, они будут выведены в одну строку, в качестве разделителя по умолчанию используется пробел. Параметр sep позволяет изменить значение по умолчанию, указав произвольный набор символов для разделения.
print("элемент1 ", "элемент2", sep="_")
Результат:
элемент1_элемент2
Некоторые функции, используемые в Python, позволяют использовать именованные параметры, sep входит в их число. Аналогично можно изменить символ, который добавляется после вывода всех элементов. По умолчанию это перевод строки, можно указать произвольный.
print("Строка 1", "Строка 2", end=" ") print("Строка 3") # Выведет: Строка 1 Строка 2 Строка 3
Если вызвать print() без параметров, будет выведена пустая строка, что часто бывает полезно для визуального отделения отдельных блоков.
Если необходимо вывести большой текст с сохранением форматирования, его необходимо разместить между утроенных кавычек.
print("""Строка 1 Строка 2 Строка 3""")
Такой код сразу выведет элементы текста на отдельных строках.
Строка 1
Строка 2
Строка 3
Функционал print также можно реализовать при помощи метода write(), который доступен модуле sys (объект stdout). Подробнее они будут рассмотрены далее.
import sys # Подключаем модуль sys, чтобы использовать sys.stdout.write("Строка") # содержащийся в нем объект stdout
Обычно модуль представляет собой стандартный файл с кодом Python. Но модуль sys имеет формат стандартной библиотеки, уже входит в состав пакета. Достаточно просто подключить ее перед основным кодом.
В приведенном примере в первой строке используется оператор import, который и обеспечивает подключение модуля sys. Далее используется метод write(), который и реализует вывод строки. Стоит учитывать, что данный метод по умолчанию не добавляет символ перевода строки, при необходимости его нужно добавить самостоятельно.
import sys sys.stdout.write("Строка 1\n") sys.stdout.write("Строка 2")
Стоит помнить, что метод write() после выполнения возвращает результат, в данном случае это количество символов в строке. Есть возможность присвоить результат переменной для дальнейшего использования.
import sys cnt = sys.stdout.write("Привет, Максим\n") print("Символов в строке: ", cnt)
Ввод данных
Ввод данных реализуется при помощи функции input(), данные передаются при помощи стандартного потока ввода stdin. Используется следующий формат.
input([<Сообщение>])
После ввода текста пользователем оно возвращается в качестве результата, его можно сразу присвоить нужной переменной. Простой пример работы:
name = input("Укажите имя: ") print("Здравствуйте,", name) input("Enter для закрытия окна")
Первая конструкция обеспечивает ввод данных и сохранение их в переменной.
Если сохранить данный код в файле с расширением .py и запустить его на выполнение (двойной клик), будет запущено черное окно с пригласительной надписью. Необходимо ввести запрошенную информацию и нажать Enter для подтверждения.
При работе с данной функции следует учитывать ряд особенностей. При достижении конца файла или при использовании комбинации Ctrl+Z и клавиша Enter автоматически генерируется исключение EOFError. В обычном режиме программа аварийно завершается, если программист явно не обработает данное исключение. Например, это можно сделать следующим образом:
try: s = input("Введите данные: ") print(s) except EOFError: print("Обработали исключение EOFError")
При возникновении внутри секции try исключения EOFError управление сразу переходит в секцию except. После выполнения всех инструкций в данном блоке программа продолжит работу в штатном режиме.
Передать данные можно при вызове консоли, перечислив их после имени файла. Такой набор данных доступен через список argv (модуль sys). Первому элементу списка присваивается имя запущенного файла, далее будут идти переданные данные. К примеру, создадим новый файл test2.py в папке C:\lesson со следующим содержимым:
import sys arr = sys.argv[:] for n in arr: print(n)
Далее можно запустить приложение при помощи консоли, сразу передав нужных набор данных. Для этого необходимо открыть штатную командную строку cmd.exe. Для перехода в нужный каталог используется команда:
cd C:\lesson
Смену каталога можно определить по виду приглашения – C:\lesson>
Для запуска нужной программы необходимо ввести следующую команду:
test2.py asus aser
Данная команда позволяет передать нужное имя файла и определенный набор данных.
Результат выполнения:
test2.py
asus
aser