2.2. Практикум

Примечание

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

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

2.2.1. Установка и настройка

В настоящем курсе используются Python 3.5, Geany 1.30, Atom 1.23 и PyCharm 2019, однако могут быть установлены и их более свежие версии.

2.2.1.1. Python

Для установки Python необходимо выполнить ряд действий в зависимости от ОС:

  • определить разрядность ОС (32- или 64-битная, инструкции для Windows, Mac OS X или Linux);

  • открыть страницу загрузки (общая) и загрузить соответствующий дистрибутив;

  • выполнить установку (при установке на ОС Windows необходимо установить флажок Add python.exe to PATH во время установки).

В дистрибутивах Linux с пакетным менеджером, удобнее использовать его команды, например:

sudo apt-get install python3
sudo apt-get install python3-pip
sudo apt-get install idle3

После установки запустите терминал и убедитесь, что необходимая версия Python установлена.

2.2.1.1.1. Дополнительные пакеты

Задания, выполняемые на Python, должны проходить автоматическую проверку (валидацию) и соответствовать стандарту оформления PEP 8. Для поддержки этой возможности откройте терминал в папке с tests (в папке с заданиями) и выполните команду установки:

pip install -r requirements.txt

Запуск проверки отдельно для каждой IDE описан далее.

2.2.1.2. IDE

В рамках курса возможности Atom, Geany и PyCharm не отличаются, поэтому выбор остается за Вами: Atom и PyCharm являются более современными и популярными IDE, в то время как Geany обладает необходимыми возможностями и поддерживает русский язык в интерфейсе.

В курсе достаточно использовать одну из IDE.

2.2.1.2.1. Atom

Для установки необходимо перейти на официальный сайт Atom и загрузить предложенный дистрибутив.

Главное окно Atom приведено на Рисунке 2.2.1; в Таблице 2.2.1 - краткое описание элементов интерфейса.

_images/02_02_01.png

Рисунок 2.2.1 - Главное окно IDE Atom

Таблица 2.2.1 - Элементы интерфейса главного окна Atom

Наименование

Назначение / Что можно найти?

1

Главное меню

Все доступные команды IDE

2

Вкладки

Список открытых файлов

3

Обозреватель проекта

Дерево файлов проекта

4

Редактор кода

Набор кода с подсветкой синтаксиса и прочими удобствами

5

Мини-карта файла

Удобное отображение структуры файла

6

Окно сообщений

Информация о запуске программы, ошибках в стандарте оформления и т.д.

7

Строка состояния

Информация о файле: кодировка, положение курсора в редакторе кода и т.д.

Некоторые из элементов главного окна отобразятся после дополнительной настройки.

2.2.1.2.1.1. Настройка отступов и пробелов

В главном меню Atom нажмите Ctrl + Shift + P, наберите settings и нажмите <ENTER>. Проверьте значения следующих параметров:

  • вкладка Editor:

    • установлен флажок «Show Indent Guide»;

    • установлен флажок «Show Invisibles»;

    • установлен флажок «Soft Wrap».

2.2.1.2.1.2. Установка и настройка пакетов

Дополнительно необходимо установить следующие пакеты:

  • minimap: «мини-карта» документа;

  • linter-flake8: проверка на соответствие кода стандарту PEP 8;

  • autocomplete-python: интерактивная подсказка синтаксиса языка;

  • atom-python-run: запуск программы из редактора.

Установку дополнений можно произвести (1) из терминала или (2) в графическом интерфейсе.

  1. Откройте терминал и введите команду:

apm install minimap linter-flake8 autocomplete-python atom-python-run intentions busy-signal linter linter-ui-default
  1. В главном окне Atom:

  • нажмите Ctrl + Shift + P, наберите install package и выберите появившееся меню Install Packages And Themes;

  • для каждого пакета:

    • в текстовом поле Search packages введите имя пакета и нажмите <ENTER> для его поиска;

    • установите найденный пакет, нажав на кнопку Install; в случае дополнительных запросов на установку зависимых пакетов (dependencies) необходимо ответить Yes.

2.2.1.2.1.3. Автоматическая проверка заданий и PEP8

Установленные плагины позволяют автоматически выполнять проверку на соответствие кода стандарту PEP 8, отображая ошибки в окне сообщений.

Для проверки выполняемых заданий откройте настройки пакета atom-python-run и проверьте, что команды установлены как на Рисунке 2.2.2 (обведено красным), где путь ..\tests\test.py - относительный путь к валидатору test.py.

_images/02_02_02.png

Рисунок 2.2.2 - Команды сборки Python

После настройки используйте команды:

2.2.1.2.2. Geany

Для установки Geany необходимо выполнить следующие шаги в зависимости от операционной системы.

Windows / Mac OS X
  • на официальном сайте Geany перейти в раздел Download/Releases, загрузить соответствующий дистрибутив (geany-1.X_setup.exe или geany-1.X_osx.dmg) и выполнить установку;

  • только для Windows(!): на официальном сайте плагинов Geany перейти в раздел Downloads, загрузить дистрибутив, соответствующий по версии установленной Geany (geany-plugins-1.X_setup.exe) и выполнить установку.

Linux

В дистрибутивах Linux с пакетным менеджером, удобнее использовать его команды, например:

sudo add-apt-repository ppa:geany-dev/ppa
sudo apt-get update
sudo apt-get install geany geany-plugins

Для других дистрибутивов:

  • на официальном сайте Geany перейти в раздел Download/Third Party Packages и выполнить инструкции для своего дистрибутива Linux;

  • на официальном сайте плагинов Geany перейти в раздел Installation и выполнить инструкции для своего дистрибутива Linux.

Главное окно Geany приведено на Рисунке 2.2.3; в Таблице 2.2.2 - краткое описание элементов интерфейса.

_images/02_02_03.png

Рисунок 2.2.3 - Главное окно IDE Geany

Таблица 2.2.2 - Элементы интерфейса главного окна Geany

Наименование

Назначение / Что можно найти?

1

Главное меню

Все доступные команды IDE

2

Панель инструментов

Быстрый доступ к командам работы с файлами, а также запуску программ

3

Вкладки

Список открытых файлов

4

Обозреватель проекта

Отображение идентификаторов программы, дерева файлов и т.д.

5

Редактор кода

Набор кода с подсветкой синтаксиса и прочими удобствами

6

Мини-карта файла

Удобное отображение структуры файла

7

Окно сообщений

Информация о запуске программы или о выполнении прочих команд

8

Строка состояния

Информация о файле: кодировка, положение курсора в редакторе кода и т.д.

Некоторые из элементов главного окна отобразятся после дополнительной настройки.

2.2.1.2.2.1. Настройка отступов и пробелов

В главном меню Geany выберите Правка -> Настройки (Edit -> Preferences). Проверьте значения следующих параметров:

  • вкладка Редактор (Editor):

    • вкладка Возможности (Features):

      • установлен флажок «Новая строка убирает лишние пробелы» («Newline strips trailing spaces»);

      • поле «Маркер переключения комментариев» («Comment toggle marker») установлено в 1 пробел.

    • вкладка Отступы (Indentation):

      • Ширина (Width): 4;

      • Тип (Type): Пробелы;

      • снят флажок «Отступ при помощи клавиши Tab» («Tab key indents»).

    • вкладка Отображение (Display):

      • установлен флажок «Показывать индикаторы отступа» («Show indentation guides»);

      • установлен флажок «Показывать пробелы» («Show white space»).

  • вкладка Файлы (Files):

    • Сохранение файлов (Saving Files):

      • установлен флажок «Убирать лишние пробелы и табуляции» («Strip trailing spaces and tabs»);

      • установлен флажок «Заменять табуляции пробелами» («Replace tabs with space»).

2.2.1.2.2.2. Включение и настройка модулей

В главном меню Geany выберите Инструменты -> Менеджер модулей (Tools -> Plugin Manager). Отметьте флажки у следующих модулей:

  • Overview: отображает «мини-карту» документа;

  • Авто-маркер (Auto-mark): подсвечивает текущее слово под курсором;

  • Дерево файлов (TreeBrowser): показывает дерево файлов на боковой панели слева;

  • Дополнения (Addons): маленькие удобства, например, панель задач, обрамление выделенного текста и т.д.

Для настройки модулей выберите в главном меню команду Правка -> Настройка модулей (Edit -> Plugin Preferences).

  • вкладка Дополнения (Addons):

    • установите флажок «Удалять пустые строки в конце файла при сохранении» («Strip trailing blank lines»).

2.2.1.2.2.3. Автоматическая проверка заданий и PEP8

Для проверки и соответствия стандарту оформления PEP 8 создайте новый файл с расширением '.py', после чего откройте настройки сборки в Geany Сборка -> Установить команды сборки (Build -> Set Build Commands) и проверьте, что команды установлены как на Рисунке 2.2.4 (обведено красным), где путь ../tests/ - относительный путь к валидатору test.py.

_images/02_02_04.png

Рисунок 2.2.4 - Команды сборки Python

После настройки используйте команды:

  • F5: запуск программы на выполнение;

  • PEP8 (или Lint) в меню Сборка: запуск проверки текущего файла на соответствие PEP8 с отображением возможных ошибок в окне сообщений красным цветом (данную проверку и устранение ошибок рекомендуется осуществлять регулярно);

  • Проверить в меню Сборка: запуск автоматической проверки решенной задачи (см. пример: Цикл выполнения и защиты заданий).

2.2.1.2.3. PyCharm

Для установки необходимо перейти на официальный сайт PyCharm и загрузить предложенный дистрибутив (Community Edition).

Главное окно PyCharm приведено на Рисунке 2.2.5; в Таблице 2.2.3 - краткое описание элементов интерфейса.

_images/02_02_05.png

Рисунок 2.2.5 - Главное окно IDE PyCharm

Таблица 2.2.3 - Элементы интерфейса главного окна PyCharm

Наименование

Назначение / Что можно найти?

1

Главное меню

Все доступные команды IDE

2

Вкладки

Список открытых файлов

3

Обозреватель проекта

Дерево файлов проекта

4

Редактор кода

Набор кода с подсветкой синтаксиса и прочими удобствами

5

Мини-карта файла

Удобное отображение структуры файла

6

Консоль запуска

Интерактивная консоль запуска программы

7

Строка состояния

Информация о файле: кодировка, положение курсора в редакторе кода и т.д.

2.2.1.2.3.1. Запуск и автоматическая проверка заданий и PEP8

PyCharm автоматически проверяет код на соответствие стандарту PEP 8, используя подчеркивание в редакторе кода (Рисунок 2.2.6).

_images/02_02_06.png

Рисунок 2.2.6 - Автоматическая проверка PEP8 в PyCharm

Для быстрого запуска и проверки выполняемых заданий необходимо выполнить ряд настроек.

В главном меню PyCharm выберите File -> Settings и найдите в поиске меню External Tools (Рисунок 2.2.7).

_images/02_02_07.png

Рисунок 2.2.7 - Окно добавления инструментов для запуска и проверки заданий

Для возможности запуска задания добавьте (через кнопку +) возможность запуска программы (Рисунок 2.2.8) и нажмите OK.

_images/02_02_08.png

Рисунок 2.2.8 - Команда запуска задания

Аналогично добавьте возможность проверки задания (Рисунок 2.2.9) и нажмите OK, где путь ..\tests\test.py - относительный путь к валидатору test.py.

_images/02_02_09.png

Рисунок 2.2.9 - Команда проверки задания

Для быстрого запуска и проверки заданий также рекомендуется добавить горячие клавиши. В главном меню PyCharm выберите File -> Settings и найдите в поиске меню Keymap (Рисунок 2.2.10).

_images/02_02_10.png

Рисунок 2.2.10 - Окно настройки сочетаний клавиш

Для добавления сочетания клавиш:

  • выделите строку с командой;

  • вызовите контекстное меню и выберите пункт Add Keyboard Shortcut;

  • в открывшемся окне нажмите горячую клавишу (F5 для запуска, F6 - для проверки) и нажмите OK;

  • в случае предупреждения, что горячая клавиша уже занята, нажмите Remove (в дальнейшем сочетания можно будет сбросить к начальным настройкам при необходимости).

2.2.1.2.4. Сочетания клавиш

Некоторые полезные сочетания клавиш приведены в Таблице 2.2.4.

Таблица 2.2.4 - Некоторые сочетания клавиш в IDE

Действие

Atom

Geany

PyCharm

Запуск программы

F5

F5

F5

Запуск автоматической проверки

F6

Меню Сборка -> Проверить

F6

Комментирование/Раскомментирование строки

Ctrl + /

Ctrl + E

Ctrl + /

Дублирование текущей строки

Ctrl + Shift + D

Ctrl + D

Ctrl + D

Поиск, замена

Ctrl + F

Ctrl + F, Ctrl + H

Ctrl + F, Ctrl + R

2.2.1.2.5. Дополнительные советы

Ряд проблем часто возникает при написании первых программ - используйте советы ниже для их решения.

Использование кириллицы и пробелов

Старайтесь избегать использования кириллицы и пробелов при наименовании имен файлов и идентификаторов в программе.

Кодировка файла

Для вновь создаваемого файла IDE устанавливает кодировку в UTF-8, которая как раз требуется для файлов исходного кода Python, и указывает это в строке состояния. Если файл определяется в другой кодировке (такое бывает, например, если создать файл в блокноте ОС Windows), ее необходимо поменять, выполнив следующие действия:

  • Atom: щелкнуть в строке состояния на текущую кодировку файла и выбрать UTF-8,

  • Geany: главное меню Документ -> Установить кодировку -> Юникод -> Юникод (UTF-8),

  • PyCharm: щелкнуть в строке состояния на текущую кодировку файла и выбрать UTF-8

после чего сохранить файл.

Совмещение пробелов и знаков табуляции

Python не позволяет использовать одновременно пробелы и знаки табуляции в качестве разделителей, выдавая ошибку

TabError: inconsistent use of tabs and spaces in indentation.

Данную проблему можно решить, используя замену (Рисунок 2.2.11).

_images/02_02_11.png

Рисунок 2.2.11 - Замена всех знаков табуляции на 4 пробела на примере Geany

2.2.2. Написание программ

2.2.2.1. Python

Для запуска интерпретатора Python откройте терминал и введите команду python (или python3), после чего интерпретатор будет запущен и перейдет в интерактивный режим, ожидая ввода команд (Рисунок 2.2.12).

_images/02_02_12.png

Рисунок 2.2.12 - Запуск интерпретатора Python

После ввода команды ее необходимо подтвердить нажатием клавиши <ENTER>. При этом, если команда подразумевает возврат какого-либо результата, интерпретатор автоматически отобразит его в консоли (Рисунок 2.2.13).

_images/02_02_13.png

Рисунок 2.2.13 - Ввод команд и отображение результата

Введите в консоли по очереди команды, приведенные в Листинге 2.2.1. Комментарии вводить не обязательно. Один из возможных результатов выполнения приведен на Рисунке 2.2.14.

Листинг 2.2.1 - Пример программы на языке Python | скачать
print("Решение кв. уравнения | ax^2 + bx + c = 0")

a = int(input("a="))  # Вводим с клавиатуры целое число и
b = int(input("b="))  # связываем с определенной переменной
c = int(input("c="))

d = b**2 - 4*a*c  # Рассчитываем дискриминант, [d] указывает на результат

d  # Отображаем полученное значение (только в интерактивной консоли!)

# Выводим решение в зависимости от значения дискриминанта
if d < 0:
    print("Решений нет")
elif d == 0:
    x = -b / (2*a)
    print("x =", x)
else:
    x1 = (-b - d**0.5) / (2*a)
    x2 = (-b + d**0.5) / (2*a)
    print("x1 =", x1, " x2 =", x2)
_images/02_02_14.png

Рисунок 2.2.14 - Результат ввода программы в интерактивном режиме

Даже если не знать синтаксис Python, благодаря его «простоте», можно понять, что происходит в программе.

2.2.2.2. IDE

В случае, когда программу требуется сохранить и периодически изменять, удобнее будет работать в IDE.

2.2.2.2.1. Atom

Для создания и запуска программы необходимо выполнить нескольких шагов:

  1. Для создания файла выберите меню File -> New File (Ctrl + N).

  2. Сохраните файл с расширением '.py' (например, 'main.py'), используя меню File -> Save (Ctrl + S). Убедитесь, что кодировка файла установлена в UTF-8.

  3. Наберите текст программы из Листинга 2.2.1.

  4. Для запуска программы нажмите клавишу F5.

  5. Протестируйте работу программы, запустив ее несколько раз, введя различные входные данные.

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

_images/02_02_15.png

Рисунок 2.2.15 - Работа в IDE Atom

2.2.2.2.2. Geany

Для создания и запуска программы необходимо выполнить нескольких шагов:

  1. Для создания файла выберите меню Файл -> Создать (Ctrl + N).

  2. Сохраните файл с расширением '.py' (например, 'main.py'), используя меню Файл -> Сохранить (Ctrl + S). Убедитесь, что кодировка файла установлена в UTF-8.

  3. Наберите текст программы из Листинга 2.2.1.

  4. Для запуска программы нажмите клавишу F5 или кнопку Выполнить на панели инструментов.

  5. Протестируйте работу программы, запустив ее несколько раз, введя различные входные данные.

  6. Проверьте, исправьте возможные стилевые ошибки, выбрав меню Сборка -> PEP8 и сохраните окончательный вариант программы (Рисунок 2.2.16).

_images/02_02_16.png

Рисунок 2.2.16 - Работа в IDE Geany

2.2.2.2.3. PyCharm

PyCharm использует концепцию проектов, поэтому в первую очередь необходимо создать пустой проект, и, введя его название, нажать кнопку OK (Рисунок 2.2.17).

_images/02_02_17.png

Рисунок 2.2.17 - Создание проекта IDE PyCharm

После открытия проекта необходимо выполнить нескольких шагов:

  1. Для создания файла выберите меню File -> New (Alt + Ins).

  2. Выберите Python File и введите имя файла (например, 'main.py'), после чего подтвердите создание нажатием кнопки OK.

  3. Наберите текст программы из Листинга 2.2.1.

  4. Для запуска программы нажмите клавишу F5.

  5. Протестируйте работу программы, запустив ее несколько раз, введя различные входные данные.

  6. Проверьте, исправьте возможные стилевые ошибки (до исчезания подчеркиваний в редакторе кода) и сохраните окончательный вариант программы (Рисунок 2.2.18).

_images/02_02_18.png

Рисунок 2.2.18 - Работа в IDE PyCharm

2.2.2.2.4. Автоматическая проверка заданий

Начиная с 3-й темы заключительным этапом решения задачи должна быть автоматическая проверка (клавиша F6 в Atom и PyCharm или меню Сборка -> Проверить в Geany). Подробнее см. раздел Выполнение практикума и самостоятельной работы.

2.2.3. Получение справочной информации

Исчерпывающая документация по языку программирования Python находится на официальном сайте в разделе документации или в папке Doc (куда был установлен Python). Воспользуйтесь поиском, когда необходимо найти описание неизвестной функции или ознакомиться с ее поведением (Рисунок 2.2.19).

_images/02_02_19.png

Рисунок 2.2.19 - Поиск функции print() в онлайн-документации

help

Еще одним (и возможно более простым) способом получения справочной информации является использование функции help() (Рисунок 2.2.20)

_images/02_02_20.png

Рисунок 2.2.20 - Использование функции help() для получения справки

Примечание

Используя заготовку, сохраните как:

  • desktop_python_terminal.png: скриншот рабочего стола с запущенным интерпретатором Python c указанием версии и набранной программой из Листинга 2.2.1;

  • desktop_ide_terminal.png: скриншот рабочего стола с запущенной IDE (с набранной программой из Листинга 2.2.1), а также терминала с результатом запуска;

  • task_02_02_01.py: файл с текстом программы из Листинга 2.2.1;

  • help.png: скриншот с найденной справочной информацией для функции input() (используя используя функцию help() и официальный сайт с документацией).