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

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

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

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

Они обсуждаются ниже, в этом же разделе. Обход значений н словаре выполняется похожим способом: тог ча!ое тп а.ча1оев(): рг(т(ча1ое) Для обхода ключей в словаре можно использовать метод 01ст. Кеув() нлн просто интерпретировать словарь как итерируемый объект и вы- полнить итерации по его ключам, как показано в следующих двух фрагментах: 0.9ет(к) 0.9ес(К, ч) 0 ттезв() а .

кеув( ) 0 рор(К) Удаляет все элементы из словаря 0 Возвращает поверхностную копию словаря 0 о Поверхностное и глубокое копирование,стр. 173 Отображения тот кеу то О.кеув(): ! рг!от(кеу) Гог Кеу то О: рг1ят(КЕу) Гог Кеу то О: О(Кеу] += 1 Методы Шст. 11еюв(), Шст. Кеув() и д(ст. ча1цев() возвращают представления словарей.

Представление словаря — это в действительности итерируемый объект, доступный только для чтения и хранящий элементы, ключи или значения словаря в зависимости от того, какое представление было запрошено. Вообще, мы легко можем интерпретировать представления как итерируемые объекты. Однако между представлениями и обычными итерируемыми объектами есть два различия. Одно из них заключается в том, что если словарь, для которого было получено представление, изменяется, то представление будет отражать эти изменения. Другое отличие состоит в том, что представления ключей и элементов поддерживают некоторые операции, свойственные множествам. Допустим, у нас имеются представление словаря ч и множество или представление словаря х; для этой пары поддерживаются следующие операции: чах ч)х ч-х и Пересечение я Объединение я Разность я Строгая дизьюнкция ч х Для проверки наличия некоторого определенного ключа в словаре мож- но использовать оператор проверки на вхождение 1п, например, х то г(.

Чтобы выяснить, какие ключи из заданного множества присутствуют в словаре, можно использовать оператор пересечения. Например: о = ().(гоюкеув (-АВСС-, З) я О == ( А: З, В : З, С : З, Р: З) в = вет("Асх") а в == ('А', 'С', 'Х') аатсоев = о.кеув() а в а аатсоев == ('А', 'с') Обратите внимание, что в комментариях в этом фрагменте программ- ного кода мы указали ключи в алфавитном порядке — это сделано лишь для простоты восприятия, поскольку словари и множества явля- ются неупорядоченными коллекциями. Словари часто используются для хранения счетчиков уникальных элементов. Один такой пример — подсчет числа вхождений каждого отдельного слова в файле. Ниже приводится программный код законченной программы (ипириогг(а1.ру)), которая выводит в алфавитном Если необходимо изменить значения в словаре, то можно выполнить обход ключей словаря в цикле и изменить значения, используя оператор квадратных скобок. Например, ниже показано, как можно было бы увеличить все значения в словаре С, если предполагать, что все значения являются числами: Глаза 3.

Типы коллекций порядке список слов с количеством вхождений каждого из них во всех файлах, перечисленных в командной строке: 1арогг вгг1пц [эрогг вув могов = () вггвр = вгг[пд.мп11еврасе + вггвпц.ропсгоаг[оп « вгг1пц.о[дага « (ог (г1апаэе !и вув.агро[1:]: Гог 11пв 1п орвп((11апаэе): Гог мого гп 1«па. 1омег().вр1аг(): мого = мого.в1ггр(в1гар) 11 1еп(мого) > 2: могов[мого] = могов.дег (мого, 0) « 1 Гог мого [п вог(ео(магов); Рг1пг("'(0)' оссогв (1) 11эев". Гогта.(мого, магов[мого])) Программа начинается с создания пустого словаря с именем могов, затем путем конкатенации некоторых полезных строк, объявленных в модуле в1г[пд, создается строка, содержащая все символы, которые мы будем игнорировать.

Мы выполняем итерации по всем именам файлов, полученным в виде аргументов командной строки, и по всем строкам в каждом файле. Описание функции орел() смотрите во врезке «Чтение и запись текстовых файлов» (стр. 157). Мы не указываем кодировку символов (потому что не знаем, какой она будет в каждом файле) и позволяем интерпретатору открывать каждый файл, используя по умолчанию локальную кодировку. После приведения всех символов строки к нижнему регистру она разбивается на слова, после этого с обоих концов каждого слова удаляются нежелательные символы. Если в получившемся слове осталось хотя бы три символа, мы выполняем обновление словаря. Мы не можем использовать синтаксис могсв[могО] += 1, потому что в самый первый раз, когда слово могО еще отсутствует в словаре, это выражение будет возбуждать исключение КеуЕггог — мы же не можем увеличивать значение элемента, отсутствующего в словаре.

Поэтому мы используем иной подход. Мы вызываем метод О1с(. де(() со значением по умолчанию О. Если слово уже присутствует в словаре, метод О[сг. де1() вернет существующее значение и это значение, увеличенное на 1, будет записано как новое значение элемента. Если слово отсутствует в словаре, метод О1с1, це1( ) вернет значение по умолчанию 0 и это значение, увеличенное на 1 (то есть 1), будет записано как значение нового элемента, ключом которого является строка могс.

Чтобы пояснить ситуацию, ниже приводятся два фрагмента программного кода, выполняющего одно и то же, хотя код, использующий метод О[с1. дев(), имеет более высокую эффективность: «Г мого по1 1п могов. могов[мого] = Ц могов[мого] «= П магов[мого] = магов даГ(мого, 0) « 1 Отображения Чтение и запись текстовых файло Файлы открываются с помощью встроенной функции орел(), которая возвращает «объект файла» (типа то. Тек!10)4гаррег для текстовых файлов).

Функция орел() принимает один обязательный аргумент — имя файла, которое может включать путь к файлу, и до шести необязательных аргументов, два из которых коротко описываются здесь. Второй аргумент определяет режим работы с файлом, то есть он указывает, будет ли файл интерпретироваться как текстовый или как двоичный, и для выполнения каких действий будет открыт файл — для чтения, для записи, для дополнения в конец или комбинации этих действий. Для работы с текстовыми файлами РуСЬоп использует кодировку символов, зависящую от платформы. Поэтому, возможно, лучше будет указывать кодировку с помощью аргумента епсо01по функции орел(), то есть обычный синтаксис, используемый для открытия файлов, имеет следующий вид: В о Глава 7, работа с файлами, стр. 334 а Кодировки символов, стр.

112 11л = орел(11!впаяв, епсоотпс="отт8") в для чтения текста Гост = орел(тт!епаив, "и", впсос1пр="отт8") в для записи текста Поскольку по умолчанию функция орел() использует режим «для чтения», и для указания кодировки используется именованный аргумент епсоззпр, а не позиционный, то при открытии файла для чтения можно опустить другие необязательные позиционные аргументы. Аналогично, при открытии файла для записи мы можем указывать только те аргументы, которые действительно необходимы. (Вопросы передачи аргументов подробно рассматриваются в главе 4.) В следующем подразделе мы познакомимся со словарями, имеющими значения по умолчанию, и рассмотрим альтернативное решение. После того, как все встретившиеся слова будут накоплены в словаре, выполняются итерации по его ключам (по словам) в алфавитном по- рядке и выводятся слова и число раз, которое они встречаются.

Использование метода С1ст. рет() позволяет легко обновлять значения в словаре, возвращая значения, если это отдельные элементы данных, такие как числа или строки. Но как быть, если каждое значение само по себе является коллекцией"г Чтобы продемонстрировать, как обраба- тывать такие значения, ниже приводится программа, которая читает Глава 3, Типы коллекций Как только файл будет открыт для чтения в текстовом режиме, можно будет прочитать его целиком в одну строку, используя метод объекта файла геас(), или в список строк, используя метод объекта файла геаг)1~лев().

Типичный прием построчного чтения содержимого файла основан на интерпретации объекта файла как итератора: гог 1)пе (п орал(г11апаае, апсоо)пды'огга"): ргосеаа( 11пе) Этот прием работает, потому что объект файла допускает выполнение итераций по нему, как по последовательности, каждый элемент которой представляет собой строку, содержащую отдельную строку из файла. Строки, которые в этом случае получает программа, содержат символы перевода строки уп.

Если в качестве режима указать «чг», файл будет открыт в режиме «записи текста». Запись в файл может производиться с помощью метода объекта файла иг(1е ( ), который в качестве аргумента принимает единственную строку. Каждая записываемая строка уже должна содержать символ перевода строки 1п. При выполнении чтения и записи Ру1йоп автоматически преобразует символы у,п в последовательность символов завершения строки, характерную для той или иной платформы. После окончания работы с объектом файла можно вызвать его метод с! озе( ) — это приведет к выталкиванию буферов вывода на диск.

В небольших программах на языке Ру1Ьоп обычно не принято беспокоиться о вызове функции с1оае(), поскольку РуФлоп делает это автоматически, когда объект файла выходит из текущей области видимости. Если возникают какие-либо проблемы, объект тут же сообщает о них возбуждением исключений. содержимое файлов НТМЬ, имена которых указываются в командной строке, и выводит список различных веб-сайтов, ссылки на которые присутствуют в файлах, и список файлов, в которых эти ссылки встречаются, ниже каждого веб-сайта. По своей структуре программа (ех(егла( а((еа.ру) очень похожа на программу подсчета числа вхождений отдельных слов, которую мы только что рассмотрели.

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

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

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

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