Вы находитесь на странице: 1из 4

2.

8 Организация ввода данных

Ввод данных непосредственно в ходе выполнения программы осуществ-


ляется с помощью функции
input([prompt] 1)),
которая считывает вводимые символы с клавиатуры или из файла и преобра-
зует их в строку.
Концом ввода данных является символ новой строки.
Функция input() имеет единственный необязательный аргумент prompt,
при этом:
• если аргумент prompt присутствует, то он выводится без перехода на
новую строку (курсор остается в той же строке);
• как правило, аргумент prompt − строка-приглашение ввода. В этом слу-
чае аргумент берется в кавычки;
• аргумент prompt изредка может быть переменной (используется без ка-
вычек). Тогда выводится значение этой переменной.
Чаще всего функция input([prompt]) используется в операторе
присваивания и возвращает аргументу, расположенному слева, введенную
строку. Поэтому при попытке выполнить арифметическую операцию со вве-
денным значением, вероятно появление ошибки ().

Описание типа
ошибки

Рисунок 2.15 – Некорректное использование функции input()


для ввода числовых данных
Ввод чисел с помощью функции input() реализуется двумя основными
способами:
• преобразование введенной строки с помощью функций-конструкторов
int(), float(), complex() и др.;
• применение специальной функции eval(), используемой для извлечения
значений.

1)
При описании функций, используемых в языках программирования, в квадрат-
ных скобках часто указывают необязательные аргументы.
31
Рассмотрим более подробно каждый из случаев. Обратите внимание на
преобразование типов данных, которое выполняется в листинге программы,
представленной на рисунке 2.16. Введенная строка (class 'str') преобразуется
в целочисленное значение посредством функции-конструктора int(), после
чего с ней можно выполнять арифметические операции.

Рисунок 2.16 – Преобразование введенной строки в целое число


Возможно преобразование введенной строки в числовое значение непо-
средственно в операторе присваивания (рисунок 2.17).

Рисунок 2.17 – Однострочный ввод числовых значений


Еще один способ организации ввода чисел – применение функции eval(),
имеющей, однако, более широкое назначение.
eval(expression, globals=None, locals=None),
где expression − это строка, а аргументы globals и locals − необязательны.
Рассматриваемая функция извлекает аргумент expression и пытается вы-
числить его с помощью словарей globals и locals глобального и локального
пространства имен соответственно. Если оба словаря отсутствуют, то expres-
sion выполняется в среде вызова функции eval() (рисунок 2.18).

Рисунок 2.18 – Применение функции eval()

32
Обратите внимание, как организуется в программе ввод значений с новой
строки. Для этого используется управляющая символьная константа «\n»
(рисунок 2.19).

Рисунок 2.19 – Ввод числовых значений с новой строки


Обращение к управляющим символьным константам необходимо, если в
программном коде невозможно ввести требуемый символ непосредственно
(чаще всего, непечатаемый или имеющий специальное назначение). Некото-
рые управляющие константы:
• /n – новая строка;
• // – обратный слеш;
• /t – символ горизонтальной табуляции;
• /” – двойная кавычка;
• /’ – одинарная кавычка.

2.9 Организация вывода данных

Для вывода информации во время выполнения программы используют


функцию
print(objects, sep=' ', end='\n', file=sys.stdout,
flush=False)
где objects − неключевые аргументы, перечисляются через запятую; sep, end,
file, flush − ключевые аргументы, при отсутствии которых или значении None
используются значения по умолчанию.
Ранее функция print() использовалась для вывода на экран простых сооб-
щений и значений переменных. Далее рассмотрим её применение в более
широком аспекте.
Во многих функциях Python присутствуют аргументы двух типов:
• ключевые – имеющие имя и строго определенное назначение, изначаль-
но заданные в системе разработчиками;
• неключевые – полностью зависят от пользователя-программиста.
В функции print() перечисляются через запятую любые строки, константы
других типов данных и/или имена переменных, значения которых необходи-
мо вывести на экран или во внешний файл, – это неключевые аргументы.
Ключевые аргументы:
• sep – строка, определяющая разделитель между выводимыми объекта-
ми. По умолчанию данные выводятся, разделенные пробелом;
33
• end – строка, завершающая вывод данных. По умолчанию это перевод
на новую строку (используется управляющий символ «\n»);
• file – это текстовый поток, в который помещаются выводимые объекты.
Поток в программировании – абстрактное понятие, условно означающее не-
которое множество перемещаемых данных. По умолчанию данные выводятся
на экран и отображаются в окне оболочки Python. В качестве значения аргу-
мента file можно указать имя внешнего файла, в который будет записана вы-
водимая информация;
• flush – аргумент, означающий, должен ли поток быть очищен после вы-
полнения операции. Например, если указать значение аргумента
flush = true,
то поток принудительно стирается.
На рисунке 2.20 представлен вывод данных, разделенных символом «,».
Вывод будет закончен строкой «конец вывода».

Рисунок 2.20 – Переопределение ключевых аргументов функции print()

2.10 Общее представление об IO-файлах

Активная программа хранит данные в RAM (Random Access Memory − за-


поминающее устройство с произвольным доступом), иначе называемом ОЗУ
(оперативное запоминающее устройство). Этим обеспечивается высокая ско-
рость доступа к данным. Однако хранение информации в оперативной памя-
ти имеет и существенные недостатки:
• энергозависимость, ОЗУ требует постоянного питания;
• оперативная память стоит дороже, чем такой же объем памяти, органи-
зованной на жестком диске.
В свою очередь, жесткие диски работают медленнее оперативной памяти,
но хранение информации:
• дешевле;
• жесткие диски более емкие;
• энергонезависимо, память не очищается при выключении компьютера.
Поэтому входные данные, предназначенные для программной обработки,
целесообразно хранить именно на жестком диске. То же можно сказать и о

34

Вам также может понравиться