Главная » Просмотр файлов » Саммерфилд - Программирование на Python 3

Саммерфилд - Программирование на Python 3 (1077331), страница 75

Файл №1077331 Саммерфилд - Программирование на Python 3 (Саммерфилд - Программирование на Python 3) 75 страницаСаммерфилд - Программирование на Python 3 (1077331) страница 752018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 75)

В трех первых разделах этой главы будет использоваться одна и та же коллекция данных: множество записей об авиационных инцидентах. В табл. 7.1 показаны имена и типы данных полей, а также ограничения, накладываемые на записи об авиационных инцидентах. В действительности совершенно неважно, какие данные мы обрабатываем. Для нас сейчас важно научиться обрабатывать фундаментальные типы данных, включая строки, целые числа, числа с плавающей точкой, логические значения и даты — научившись обрабатывать эти типы данных, мы без труда сможем обрабатывать любые другие типы данных.

Таблица 7.Ь Содержимое одной записи в файле данных авиационных инцидентов Ткп данных Примечания Имя Минимальная длина 8 символов, без пробельных символов герогт то зтг Сатетгяе.вате саге Непустое, без символов перевода строки а1грогт зтг Непустое, без символов перевода строки атгсгатт 1С ыг Непустое, без символов перевода строки а1гСГатт турс зтг В диапазоне от 0.0 до 100.0 р11рт регсепт Прргп сп туре 11сат Положительное и ненулевое зна- чения 1пт рт1рт тота1 псргз яыа1г паггат1уе Псс1 Многострочный текст ыг Используя один и тот же набор данных об авиационных инцидентах и сохраняя его в двоичном, текстовом и ХМЬ форматах, мы получаем возможность сравнить различные форматы и объем программного кода, необходимого для работы с ними. В табл.

7.2 приводится число строк программного кода, необходимого для реализации операций чтения и записи в каждом из форматов. 337 Запись и чтение двоичных данных Таблица 7.2. Сравнение средств чтения/записи для формата файлов с данными об авиационных инцидентах Размер выход- ного файла (-Кбайт) Чтение+ запись строк кода Всего строк кода Формат Средство Модуль р!сК1е (со сжатием Ла1р) Модуль ртсК1е Вручную (со сжатием бх(р) Вручную Двоичный Двоичный Двоичный Двоичный Текст 20+ 16 20+ 16 60 + 34 60 + 34 39 + 26 160 416 36 94 132 356 Чтение с использованием регу- лярных выражений, запись вручную 436 Текст Вручную Дерево элементов 53 + 26 37 + 27 44 + 36 55 + 37 436 ХМ1 460 РОМ 60 460 ХМТ Чтение с использованием пар- сера ЗАХ, запись вручную ХМТ 92 464 рвезе: сопуегт-1псьбептя.ру (орт1опя] 1пгт1е оотг!1е неасв а!гсгвгт 1пс!оепт сета ггоа 1пг1!е апс аг!Тев ше сета то опттт1е.

Тсе Сета Гогаетя овео Серепо оп !Не 771е ехтепвтопя: .втх 1я хи!, .в11 тв техт (075-6 епсос!п9), .е15 !в шпагу, .втр тв ртск1е, апс .Ма1 тв нтмк (оп1у а11оаес гог !не оптгт1е). 411 Гогаатя вге р1атгога-!поерепоепт. В примерах используются реальные данные об авиационных инцидентах, которые можно найти на сайте ЕАА (Федеральное авиационное управление правительстве США, шшш.(аа.яоо) В таблице приводятся приблизительные размеры файлов, содержащих записи о 696 авиационных инцидентах.' Размеры сжатых файлов с теми же данными, сохраненными под различными именами, могут отличаться на несколько байтов, так как имена файлов, которые могут иметь разную длину, включаются в состав сжатых данных.

Точно так же могут отличаться размеры файлов ХМЕ, потому что одни средства записи в формате ХМ] замещают кавычки в тексте сущностями (50001; для " и 5зров; для '), а другие — нет. Во всех трех первых разделах рассматривается программный код одной и той же программы: сопоег(-!псЫеп!вру. Эта программа используется для чтения информации об инцидентах в одном формате и для записи в другом формате.

Ниже приводится справочный текст, который выводится программой в консоли. (Мы немного отформатировали текст, чтобы уместить его в ширину книжной страницы.) ззв Глава 7. Работа с файлами бр!топе; -и, --пе1р впош ть!в пе1р веаваде апб ех!! --гогов иг!те тпе оцттт1е ечеп !г !т ех!втв [вегас)т: от!] -ч, --чегьове герог! гевы1(в [бетац1(: от(] -г ЯЕАОЕН, --геабег=НЕАОЕН геабег (ХМЕ): 'бов', 'б', 'етгее', 'е', 'вах', 'в' геабег (тех!): 'вапца1', 'в', 'терех', 'г' [бетац11: етгее гог хмь, вапца1 тог техт! -ш ИЯ1ТЕЯ, --шг!Тег=ИР1ТЕН шгттег (ХМЬ): 'бою', 'б', 'етгее', 'е', 'вапца1', 'в' [бетао11; вапца1] -з, --совргевв совргевв .ать/.атр оотг!1е [бегац11: от(] -т, --тевт ехесцте бостевтв апб ехт! (цзе штть -ч тог чегьове) (Перевод; порядок использования: сопчегт-!по!бел!в.ру [параметры] !птт1е оцтт!1е Читает данные об авиационных инцидентах из файла тпт!1е и записывает их в файл оытт!1е. форматы файлов определяются по их расширениям.

.а!х - ХМ(, .ат! - текст (в кодировке ОТЕ-В), .а!Ь вЂ” двоичный, .а!р - формат модуля рзск1е и .Ьтв1 - ИТИЕ (только для выходного файла оцттт1е). Все форматы являются платформонезависимыми. Параметры: -Ь, --Пе)р --гогов вывести текст этого сообщения и выйти выполнять запись в оытт!1е, даже если он существует [по умолчанию запись в существующий файл не производится] -ч, --чегЬове вывести результаты [по уиолчанию; отключено] -г НЕАОЕЯ, --геабег=НЕАОЕН средство чтения (ХИЬ): 'бов', 'б', 'етгее'. 'е', 'вах', 'в' средство чтения (текст): 'вапыа1', 'в', 'герек', 'г' [по умолчанию: етгее для хме, вапца1 для текста] -и ИН1ТЕН, --шг!тег=ИН1ТЕЯ средство записи (ХМЕ): 'бов', 'б', 'етгее', 'е', 'вапца1', 'в' [по уиолчанию; вапца1] -з, --совргевв сжатие для выходных файлов .а!Ь/.а!р [по умолчанию: отключено] --тевт выполнить доктесты и выйти (для вывода подробного отчета о прохождении тестов используйте параметр -ч) конец перевода) Параметры, используемые программой„более сложные, чем обычно могло бы потребоваться конечному пользователю, которого мало беспокоит, какое средство чтения или записи используется для любого из поддерживаемых форматов.

В более реалистичной версии программы параметры, управляющие выбором средств чтения и записи„отсутствовали бы, и мы просто использовали бы по одному средству чтения и одному средству записи для каждого из форматов. Точно так же в окончательной версии программы отсутствовал бы параметр тестирования, который предоставляется исключительно для того, чтобы мы могли протестировать программный код. Запись и чтение двоичных данных 339 Программа определяет собственное исключение: с1авв 1пс1бепСЕггог(Ехсер11оп): рава Информация об авиационных инцидентах хранится в виде объектов класса 1пстбепС. Ниже приводится строка с инструкцией с1азв и метод инициализации: с1авз 1пс!бепт: бет Сптт (зе11, герогт Сб, басе, а!грег!, а!гога!С 1б, а!гога!С Суре, рт1от регсепт Поогв оп Суре, рт1ос соса1 поогв, а!ба!г, паггас1че=""): аввегт 1еп(герогт 1б) >= З апб 1еп(герогт 1б.вр1!С()) == 1, С "тпча1!о герогс Со" ве11.

герогт 1б = герогт 1б ве1т.баСе = бате ве11 а!грот! = а1грогс ве11 атгсгаГС 1б = атгсгатт тб зе11.а!гога(С Суре = а!гога(С Суре вЕ1т.рт1от рЕгСЕпт Поогв оп СурЕ = р!1от регсепт Псогв оп Суре ве1г.р!1ас соса1 поогв = р11ос соса1 поогв зе1т.п!ба1г = е!ба1г ве1т.паггаСтче = паггаС!че При создании объекта 1пс!бепС проверяется идентификатор отчета и делается доступным только для чтения в виде свойства героС г !б. Все остальные атрибуты данных представляют собой свойства, доступные для чтения и для записи. Например, ниже приводится программный код объявления свойства бате: зргорегсу бет бате(ве!Г): гетогп ве11.

бате ебате.веттег бет бате(зе11, баСе): аввегс !ыпвсапсе(басе, басе!!ее.басе), "1пча1тб басе" ве11. басе = басе Все остальные свойства объявляются точно так же, отличаясь только некоторыми особенностями инструкции аззегС, поэтому мы не будем приводить их здесь. Поскольку для проверки мы используем инструкции авве гС, программа будет завершаться аварийно при любой попытке создать объект 1псгбепС с недопустимыми данными или при попытке записать недопустимое значение в любое из свойств, доступных для чтения/записи. Такой бескомпромиссный подход был выбран потому, что нам необходимо гарантировать допустимость загружаемых и сохраняемых данных, а в случае ошибки нам требуется, чтобы программа сообщала о ней и завершала свою работу, вместо того чтобы просто продолжать работу.

Коллекция данных об инцидентах хранится в объекте типа 1пс!бепССо11есС1оп. Этот класс наследует класс б!сС, благодаря чему мы получа- Глава 7. Работа с файлами ем в свое распоряжение массу функциональных возможностей, таких как поддержка оператора доступа к элементам ([]) для получения, создания и удаления отдельных записей об инцидентах. Ниже приводится строка с инструкцией с1авв и несколько методов класса: с1авв 1пс[пеп1Со11ес11пп(Стет): ает ча1пев(ве11): Гог герогт Ш тп ве11.Кеув(): утв10 ве11[гврогт тп] се( [теав(ве11): гог герог1 тп тп ве1г.квув(): уте10 (герпгт 1с, вв11[герогт [с]) Сет ттег (ве!Г) гог герогт тс тп вогтес(вирег() каув()); утв1С герогт тб Кеув = ттвг, Нам не потребовалось переопределять специальный метод инициализации, потому что вполне достаточно функциональности унаследованного метода Стс1.

Характеристики

Тип файла
DJVU-файл
Размер
6,88 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6447
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее