9.2. Практикум

Примечание

При выполнении заданий используйте заготовки решений: -> Репозиторий.

Подробнее: см. Цикл выполнения и защиты заданий.

9.2.1. Установка и использование модулей/пакетов

Примечание

При установке руководствуйтесь разделом в Установка пакетов (pip) в разделе Помощь.

№ 9.2.1

Установите пакет py-romanify, предназначенный для работы с римскими числами, после чего:

  • введите с клавиатуры 1 римское и 1 арабское число;

  • выведите на экран результаты операций +, -, *, // как арабские и как римские числа.

№ 9.2.2

Установите пакет pyscreenshot, предназначенный для создания скриншотов, используя следующую команду:

pip install Pillow pyscreenshot

Используя функции grab() и save(), создайте и сохраните скриншот рабочего стола.

№ 9.2.3

Для создания приложений с графическим интерфейсом в Python используются отдельные фреймворки/библиотеки/пакеты (см. подробнее). В задании приведен пример создания мини-калькулятора с помощью фреймворка Qt.

Для выполнения задания установите пакет PyQt5:

pip install PyQt5

Изучив код и интерфейс приложения, добавьте кнопки для выполнения действий: -, *, /, //, %, изменив соответствующим образом код формирования интерфейса и функцию make_operation().

Пример интерфейса приложения приведен на Рисунке 9.2.1.

_images/09_02_01.png

Рисунок 9.2.1 - Пример интерфейса приложения (ОС Windows 10)

№ 9.2.4

В настоящее время широкое распространение получили QR-коды (англ. Quick Response Code— код быстрого реагирования; QR code) - специальные штрихкоды, позволяющие хранить относительно большое количество информации в закодированном виде и быстро ее считывать (Рисунок 9.2.2).

_images/09_02_02.png

Рисунок 9.2.2 - Пример QR-кода со ссылкой на данный курс

В Python также существуют пакеты для работы с QR-кодами, в частности PyQRCode и qreader. Для выполнения задачи установите (пакет qreader содержится в папке с задачей и не требует установки):

pip install pyqrcode pypng Pillow six python_dateutil reedsolo

Изучив примеры в описании пакетов, реализуйте модуль qr_utils.py, позволяющий выполнять генерацию и сохранение, а также загрузку QR-кода из файла.

9.2.2. Создание модулей

№ 9.2.5

На Рисунке 9.2.3 приведен интерфейс приложения для перевода чисел в различные системы счисления.

_images/09_02_03.png

Рисунок 9.2.3 - Пример интерфейса приложения (ОС Debian GNU/Linux 9)

Используя решение задачи № 5.2.9, завершите реализацию приложения, дополнив модули numeral_systems.py и main.py.

№ 9.2.6

Имеется приложение, позволяющее выполнять шифрование/дешифрование текстовых файлов, используя шифр Цезаря (только буквы русского алфавита, знаки препинания не изменяются).

Пример интерфейса приложения приведен на Рисунке 9.2.4.

_images/09_02_04.gif

Рисунок 9.2.4 - Пример интерфейса приложения (ОС Windows 10)

Пользователь может:

  • открыть файл или набрать текст в текстовом поле;

  • указать сдвиг и выполнить шифрование/дешифрование (при этом содержимое текстового поля изменится);

  • сохранить результат в файл.

Используя решение задачи № 5.2.11, завершите реализацию приложения, дополнив модули utils.py и main.py.

№ 9.2.7

Реализуйте модуль для numbers.py, позволяющий:

  • находить НОД и НОК;

  • определять, является ли число простым;

  • получать обратное число;

  • получать корень из числа.

№ 9.2.8

Реализуйте модуль для word_utils.py, позволяющий:

  • очистить предложение от знаков препинания;

  • получить список слов из предложения;

  • получить количество слов в предложении и самое большое из них;

  • определять статистику «встречаемости» букв в приложении.

№ 9.2.9

Реализуйте модуль для vector.py, позволяющий:

  • создать структуру-вектор;

  • определить длину вектора;

  • умножить вектор на число;

  • найти скалярное произведение векторов;

  • определить угол между векторами.

№ 9.2.10

Федеральная служба государственной статистики приводит данные о рождаемости и смертности населения 1.

Подготовленный CSV-файл содержит данные за период 1950-2015 гг. для городского и сельского населения:

Год,Родилось,Умерло,Тип
1950,1171250,436792,Городское
1950,1574747,594218,Сельское
...

Реализуйте приложение, позволяющее провести сравнительный анализ показателей рождаемости и смертности с возможностью выбора периодов и типа населения (городское, сельское или любое).

Пример интерфейса приложения приведен на Рисунке 9.2.5.

_images/09_02_05.gif

Рисунок 9.2.5 - Пример интерфейса приложения (ОС macOS Sierra)

Примечание

Для визуализации в данной работе используется библиотека matplotlib, подробно рассматриваемая в Главе 12. Сейчас достаточно выполнить ее установку.


1

Демография::Федеральная служба государственной статистики. URL: http://www.gks.ru/wps/wcm/connect/rosstat_main/rosstat/ru/statistics/population/demography/