Практические аспекты разработки
Комментарии и строки документации
- Комментарии и практика их использования 
- Комментарий — дополнение семантики: 
- не «как работает», а «какую задачу решает»
 
 - Остальное не нужно 
- исключения — сложные алгоритмы
 - исключение — дополнительная информация
 
 
 - Комментарий — дополнение семантики: 
 - Строки документации — в программе, в функциях (и в классах) 
.__doc__ и help()
 
Модули Python
- Правила import-а и поиска
 - Любая программа = модуль 
Целый подкаталог с __init__.py — модуль (т. н. «пакет»)
 - Стандартные модули Python
 - Модули и документация 
pydoc
 
Взаимодействие с операционной системой
Модули os и sys / sys.path — очень краткий обзор
- Чуть более подробнее про файлы / каталоги
 Использование tkinter.filedialog
- …иное
 
Отладка
Отладка с помощью print ☺
Пост-анализ с помощью python3 -i / Idle F5
Работа с отладчиком в IDLE
- Пример отладчика: pythontutor
 - Пошаговое выполнение 
- Step vs Over
 
 - Точки останова
 - Стек вызовов
 
Д/З
Финальное задание (не для EJudge). В задании нет чёткой формулировки и чёткого набора требований. Чем больше требований реализовано, тем больше баллов оно приносит.
Написать программу, которая обрабатывает файл в формате GPX и выводит различную информацию о нём.
Про формат GPX (см. также GPS Exchange Format):
Короткое описание (достаточное для большинства требований).
- Источники gpx-файлов 
Это место (зайти на страничку описания трека и в разделе «Скачать маршрут» выбрать «.gpx трек Garmin, Navitel и т.д.»)
Trail Followers (зайти на страничку описания трека и нажать «Скачать GPX-трек»
Скиф 4х4 (открыть трек, выбрать скачать → GPX).
- треки с этого сайта не содержат отметок высоты
 
Мультитреки (если не нашлись) ATB-Heerenveen.gpx, track37.gpx
 
 Внимание! В GPX-файлах, полученных на платформе Windows mobile, рядом с символом "\n" присутствует ещё один — "\r". Его надо просто удалить при обработке. 
Обязательные требования
- Программа должна обрабатывать произвольный файл из определяемого вами множества GPX-файлов (допустим, вы скачали несколько примеров, и на каждом она работает)
 Для каждого трека в файле программа должна выводить название трека и его суммарную длину, похожую на правду
Дополнительные требования (в скобках указаны бонусные баллы)
(+1) Входной файл вводится из командной строки (а не со стандартного ввода) или при помощи tkinter.filedialog
- (+1) Длина трека вычисляется с учётом отметок о высоте, если они есть, и в предположении идеальной горизонтали, если их нет
 (+1) Вывести также все путевые отметки (<wpt>) с их именами
- (+1) Вычисляется перепад высот и суммарная длина подъёмов и спусков
 (+2) При наличии временных отметок (<time>) вычисляется общее затраченное время, средняя, наименьшая и наибольшая скорости
Подсказка: скорее всего, вам понадобится time и в частности time.strptime(), а также, возможно, datetime
(+2) При вычислении времени, высот и длин учитывается, что трек может состоять из нескольких сегментов <trkseg>, между которыми измерения проводить не надо. Привести пример такого трека.
- (+1) Программа работает на любом синтаксически не ошибочном gpx-файле (как минимум, с сайтов выше)
 (+2) Нарисовать треки (необязательно на карте, можно MatPlotLib-ом)
