Главная страница

книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python


Скачать 2.24 Mb.
НазваниеСборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Анкоркнига заданий пайтон
Дата02.10.2022
Размер2.24 Mb.
Формат файлаdocx
Имя файлакнига практических заданий, pyton.docx
ТипСборник упражнений
#709959
страница42 из 69
1   ...   38   39   40   41   42   43   44   45   ...   69

Упражнение 162. Книги без буквы E


(Решено. 50 строк)

Истории литературы известен случай написания романа объемом около 50 тыс. слов, в котором ни разу не была употреблена самая популярная в английском алфавите буква E. Название его – «Gadsby».

Напишите программу, которая будет считывать список слов из файла и собирать статистику о том, в каком проценте слов используется каждая буква алфавита. Выведите результат для всех 26 букв английского алфавита и отдельно отметьте букву, которая встречалась в словах наиболее редко. В вашей программе должны игнорироваться знаки препинания и регистр символов.

Примечание. Липограмма представляет собой литературный прием, состоящий в написании текста без использования одной из букв (или группы букв). Часто отвергнутой буквой является одна из распространенных гласных, хотя это условие и не обязательно. Например, в стихотворении Эдгара Аллана По «Ворон» («The Raven»), состоящем из более тысячи слов, ни разу не встречается буква Z, что делает его полноценной липограммой. Еще одним примером липограммы является роман «Исчезание» («La Disparition»). Во французской и английской версиях этого произведения общим объемом примерно в 300 страниц не употребляется буква E, за исключением фамилии автора.

Упражнение 163. Популярные детские имена


(Решено. 54 строки) Набор данных, содержащий детские имена, состоит более чем из 200 файлов, в каждом из которых, помимо сотни имен, указано количество названных тем или иным именем детей. При этом файлы отсортированы по убыванию популярности имен. Для каждого года присутствует по два файла: в одном перечислены мужские имена, в другом – женские. Совокупный набор данных содержит информацию для всех лет, начиная с 1900-го и заканчивая 2012-м.

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

Упражнение 164. Универсальные имена


(56 строк) Некоторые имена, такие как Бен, Джонатан и Эндрю, подходят только для мальчиков, другие – Ребекка или Флора – только для девочек. Но есть и универсальные имена наподобие Крис или Алекс, которые могут носить и мальчики, и девочки.

Напишите программу, которая будет выводить на экран имена, использованные для мальчиков и девочек в указанном пользователем году. Если в этом году универсальных имен не было, нужно известить об этом пользователя. Кроме того, если за указанный пользователем год не было данных по именам, выведите соответствующее сообщение об ошибке. Дополнительные детали по хранению имен в файлах – в упражнении 163.

Упражнение 165. Самые популярные имена за период


(76 строк) Напишите программу, которая будет определять самые популярные имена для детей в выбранном пользователем периоде. Используйте базу данных из упражнения 163. Позвольте пользователю выбрать первый и последний год анализируемого диапазона. В результате программа должна вывести на экран мужское и женское имена, которые были чаще остальных даны детям в заданный период времени.

Упражнение 166. Имена без повторов


(41 строка) Продолжаем использовать базу имен из упражнения 163. Проходя по файлам, выберите имена без дублирования отдельно для мальчиков и для девочек и выведите их на экран. Разумеется, повторяющихся имен в этих списках быть не должно.

Упражнение 167. Проверяем правильность написания


(Решено. 58 строк) Автоматическая проверка орфографии не помешала бы многим из нас. В данном упражнении мы напишем простую программу, сверяющую слова из текстового файла со словарем. Неправильно написанными будем считать все слова, которых не нашлось в словаре.

Имя файла, в котором требуется выполнить орфографическую проверку, пользователь должен передать при помощи аргумента командной строки. В случае отсутствия аргумента должна выдаваться соответствующая ошибка. Сообщение об ошибке также должно появляться, если не удается открыть указанный пользователем файл. Используйте свои наработки из упражнения 117 при решении данной задачи, чтобы знаки препинания не мешали вам проводить орфографический анализ текста. Также вам следует игнорировать регистр символов при выполнении проверки.

Подсказка. Конечно, вы могли бы загрузить все слова из текста в список и анализировать их при помощи функции оператора in. Но эта операция будет выполняться довольно долго. Гораздо быстрее в Python выполняется проверка на наличие определенного ключа в словаре или значения в наборе. Если вы остановитесь на варианте со словарем, ключами должны стать слова, а значениями – ноль или любое другое число, поскольку их мы в данном случае использовать не будем.
1   ...   38   39   40   41   42   43   44   45   ...   69


написать администратору сайта