LXF108:Python

Материал из Linuxformat.

Перейти к: навигация, поиск

Содержание

Python: мой первый язык

Многие из нас начинали изучать программирование с Pascal или Basic – но действительно ли это оптимальный выбор? Светлана Шапошникова представляет нового претендента на роль первого языка программирования.

Большинство российских школьников и студентов начинают изучать основы программирования, используя язык Pascal. Возможно, когда-то это был действительно разумный выбор, но в настоящее время он, скорее, дань привычке и комплексу старой методической литературы. Сегодня, когда учебным заведениям предстоит миграция на Linux, разработчики большинства «школьных» дистрибутивов включают в состав своих продуктов компилятор Free Pascal (http://www.freepascal.org) и среду Lazarus (http://www.lazarus.freepascal.org). Понятно, что это скорее необходимость, делающая переход на новую систему более спокойным. Но насколько она уместна, если исходить из позиции, что методические разработки – дело наживное? Нет ли языка, более родного для Linux и в то же время не уступающего Pascal’ю по своим образовательным возможностям (а ведь Pascal был создан для обучения программированию)?

Рис. 1. Pascal и Python: почувствуйте разницу.
Рис. 1. Pascal и Python: почувствуйте разницу.

Если вам доводилось работать с детьми и обучать их основам программирования (да, в принципе, неважно чему), то вы могли заметить следующее: детская психология при изучении нового материала весьма требовательна к наглядности, концентрации на главном и сведению к минимуму иных «раздражающих» факторов. Кроме того, сегодняшние дети начинают изучать программирование несколько раньше, чем десять лет назад. Зачастую предмет «Информатика» уже присутствует в третьем-четвертом классах, а следовательно, к программированию можно подойти уже к пятому-шестому. 11-12-летние дети могут быть психологически не готовы воспринимать то, что вполне приемлемо для 15-летних. Например, обилие числовых типов данных в Pascal, «громоздкий» синтаксис языка. Хочется, чтобы первый язык программи- рования был достаточно прост и ясен. Конечно, для средней школы может подойти Лого, однако он более ориентирован на младшеклассников, а также чаще используется при изучении темы «Алгоритмика», а не «Программирование». Лого – хороший заменитель алгоритмического языка А.П. Ершова (широко используемого на уроках информатики в 80-90-х годах) для детей младшего школьного возраста. Если же говорить о первом настоящем языке программирования, то, возможно, следует обратить внимание на язык Python (http://python.org). В русском языке это имя часто читают как «Питон», но вообще-то правильное произношение – английское, «Пайтон».

Почему Python?

Рис. 2. Строгий синтаксис Python заставляет ученика правильно оформлять код.
Рис. 2. Строгий синтаксис Python заставляет ученика правильно оформлять код.

Python был создан Гвидо ван Россумом [Guido van Rossum] примерно в 1991 г. Его отличительной особенностью является простой и ясный синтаксис. С одной стороны, вспомогательные элементы языка сведены к минимуму: это позволяет делать меньше ошибок на начальном этапе обучения программированию и быстрее писать программы. С другой стороны, Python жестко регламентирует «правила отступов», поэтому воспитание аккуратности и внимательности не пострадает. Учащиеся привыкнут к хорошему стилю программирования. Чтобы преимущества Python стали очевидными, достаточно сравнить код небольшой программы, написанной на нем и на Pascal (рис. 1). Большое количество «begin-end» в сочетании с необязательностью соблюдения отступов делают проверку программы, написанной на Pascal, мукой. Кроме того, приучив ученика к строгости стиля Python, мы вынуждаем его видеть и понимать управляющие структуры (рис. 2).

Если при написании программы с использованием языка Pascal каждая переменная должна быть обязательно объявлена перед своим использованием, то в Python ей можно просто присвоить значение, которое и определит ее тип. Хорошо это или плохо – вопрос неоднозначный. Предположим, что для профессионального программиста и даже для старшеклассника это недостаток. В первом случае может проявиться непредвиденный результат или ошибка, а во втором – недостаточное понимание обработки компьютером различных типов данных. Однако при изучении начал программирования, отсутствие необходимости отслеживать многообразие числовых типов позволит уделить больше внимания логике программирования и управляющим структурам.

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

А где удобства?

В качестве одного из достоинств Pascal некоторые авторы отмечают наличие у него интегрированной среды программирования, включающей редактор, компилятор, компоновщик, отладчик и др. С Python не все так однозначно. Чтобы начать работать в интерактивном режиме, следует набрать команду python в консоли. Кроме этого, существует специальная интегрированная среда разработки IDLE (в дистрибутиве для Windows она присутствует по умолчанию, в Linux требуется доустановить пакет). Преимущество консоли – в возможности прокручивать историю команд, а IDLE – в подсветке синтаксиса. Но поскольку в режиме интерпретатора более-менее длинных программ все равно не напишешь, то первое преимущество, думается, значительнее. Для создания же скриптов [так часто называют программы на Python, второй вариант – «сценарии». Скрипты Python обычно имеют расширение .py, хотя это совершенно не обязательно, – прим. ред.] пригодно большинство текстовых редакторов Linux (не считая IDLE, в которой тоже можно набирать и сохранять файлы). Чтобы выполнить скрипт, достаточно дать команду python путь/имя_программы. И, наконец, для Python существуют специальные (содержащие большее количество инструментов, чем IDLE) среды разработки: например, DrPython (http://drpython.sourceforge.net) и Eric (http://www.die-offenbachs.de/eric) – см. рис. 3. И если первая ориентирована на школьников, то вторая больше подходит для серьезных задач. Помимо прочего, синтаксис Python поддерживает и KDevelop, так что каждый может выбрать «на свой вкус и цвет».

А дальше?

Наконец, нельзя не сказать о том, что Python – это полноценный универсальный язык программирования. Освоите азы – всегда будет, куда двигаться дальше. Python поддерживает функциональное и объектно-ориентированное программирование, для него существует большое количество библиотек, в том числе – для создания графического пользовательского интерфейса.

Каждый язык программирования имеет свои особенности и области наиболее частого применения. В качестве первого можно выбрать почти любой, однако не каждый из них будет эффективным. Также при выборе следует учитывать возраст обучаемых и род задач. Так, если цель – познакомить учащихся среднего школьного возраста с современным и используемым настоящими (вроде как бывают и игрушечные?) программистами языком, то на эту роль может прекрасно подойти Python.

Содержание образования меняется, должны меняться и его «инструменты». Следует, конечно, учитывать и человеческий фактор: многим учителям с большим стажем и энным количеством методических разработок по Pascal или Basic трудно перейти на что-то новое (да и приемные комиссии некоторых ВУЗов еще требуют от абитуриента знания именно Pascal). Поэтому включение в «школьные» дистрибутивы компилятора FreePascal сегодня является необходимостью. Однако начинающие учителя информатики, не обремененные опытом, возможно, найдут Python весьма подходящим языком для обучения основам программирования.

Узнайте больше!

Заинтересовались? Linux Format публиковал уроки Python в выпусках LXF74/7584. Вы можете загрузить их в электронном виде с сайта журнала: http://www.linuxformat.ru/pdf.phtml.

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию