Найти тему
Будни питониста

Ввод/вывод данных.

В этом разделе мы поговорим о вводе и выводе данных .. Ранее было показано, что для вывода данных используется инструкция ( функция) print(). Полный синтаксис print() выглядит так:

print ( [] [, sep=' '] [, end= ' \n'] [, file=sys.

stdout])

Разберемся с параметрами функции. Первый параметр - это набор объектов, которые нужно вывести. Список объектов разделяется запятыми. Например:

>>> а = 1; Ь = 2;

>>> print(a, Ь)

1 2

Как видите, между объектами автоматически вставляется разделитель - по умолчанию пробел. Задать собственный разделитель можно с помощью параметра sep. Например, вы можете задать символ табуляции:

>>> print(a, Ь, sep= '\t')

1 2

Параметр end задает конец строки. По умолчанию использует символ '\n', который в Windows автоматически преобразуется в последовательность '\r\n' (перевод каретки и новая строка). Обычно вам не нужно изменять этот параметр при выводе на экран, но может понадобиться его изменение при выводе в файл - все зависит от синтаксиса ( формата) файла.

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

Вызов функции print() без параметров позволит просто перевести строку (выводится пустая строка):

print ()

Некоторые программисты вместо функции print() предпочитают использовать метод write объекта sys.stdout. Например:

import sys;

sys.stdout.write("Пpивeт")

При первом использовании метода write() нужно сначала импортировать модуль sys, в котором определен этот метод.

Особенность этого метода в том, что он не добавляет символ конца строки, поэтому его нужно при необходимости добавить самостоятельно:

sys.stdout.write("Hello\n")

Для ввода данных в Python 3 используется функция input(). Использовать ее можно так:

[ =] input ( [ ] )

Небольшой пример:

name = input("Kaк тебя зовут? ")

рrint("Привет, ", name)

Работа с программой в IDLE:

>>> name = input("Kaк тебя зовут? ")

Как тебя зовут? Марк

>>> рrint("Привет, " name)

Привет, Марк

>>>

Обратите внимание, что функция input() не выводит после сообщения-приглашения никаких символов, поэтому ввод начнется сразу после выведенного функцией сообщения, что не очень удобно. Поэтому в конец сообщения принято добавлять или пробел или символ новой строки, чтобы ввод начался с новой строки:

>>> narne = input("Kaк тебя зовут?\n")

Как тебя зовут?

Марк

Если пользователь нажмет Ctrl + Z или будет достигнут конец файла (в данном случае речь идет о файле стандартного ввода - stdin), будет сгенерировано исключение EOFError и программа завершит свою работу. Чтобы этого не произошло, нужно произвести обработку этого исключения:

try:

name = input("Kaк тебя зовут? ")

print(name)

except EOFError:

print("EOFError raised")

Подробно обработка исключений рассмотрена не будет, а пока вам нужно знать, как обработать только одно из них - EOFError.