Знакомство с Python
Краткая историческая справка
Язык программирования Python был создан к 1991 году голландцем Гвидо ван Россумом.
Свое имя – Пайтон (или Питон) – получил от названия телесериала, а не пресмыкающегося.
После того как Россум разработал язык, он выложил его в Интернет, где сообщество программистов присоединилось к его улучшению.
Python активно развивается и сейчас. Часто выходят новые версии. Раньше поддерживались две отдельные ветки языка: Python 2.x и Python 3.x. Здесь английской буквой "x" обозначается конкретный релиз. Между вторым и третьим Питоном есть небольшая разница. В настоящее время поддержка Python 2 прекращена.
Официальный сайт языка – https://www.python.org.
Особенности языка Python
Python – интерпретируемый язык программирования. Это значит, что исходный код частями преобразуется в машинный в процессе его чтения специальной программой – интерпретатором.
Python характеризуется ясным синтаксисом. Читать код на нем легче, чем на других языках программирования, так как в Питоне мало используются такие вспомогательные синтаксические элементы как скобки, точки с запятыми. С другой стороны, правила языка заставляют программистов делать отступы для обозначения вложенных конструкций. Понятно, что хорошо оформленный текст с малым количеством отвлекающих элементов читать и понимать легче.
Python – это полноценный во многом универсальный язык программирования, используемый в различных сферах. Основная, но не единственная, поддерживаемая им парадигма, – объектно-ориентированное программирование. Однако в данном курсе мы только упомянем об объектах, а будем изучать структурное программирование, так как оно является базой. Без знания основных типов данных, ветвлений, циклов, функций нет смысла изучать более сложные парадигмы, так как в них все это используется.
Интерпретаторы Python распространяется свободно на основании лицензии совместимой с GNU General Public License.
Дзен Питона
Если интерпретатору Питона дать команду import this
, то выведется так называемый "Дзен Питона", иллюстрирующий идеологию и особенности данного языка. Понимание смысла этих постулатов в приложении к программированию придет тогда, когда вы освоите язык в полной мере и приобретете опыт практического программирования.
- Beautiful is better than ugly. Красивое лучше уродливого.
- Explicit is better than implicit. Явное лучше неявного.
- Simple is better than complex. Простое лучше сложного.
- Complex is better than complicated. Сложное лучше усложнённого.
- Flat is better than nested. Плоское лучше вложенного.
- Sparse is better than dense. Разрежённое лучше плотного.
- Readability counts. Удобочитаемость важна.
- Special cases aren't special enough to break the rules. Частные случаи не настолько существенны, чтобы нарушать правила.
- Although practicality beats purity. Однако практичность важнее чистоты.
- Errors should never pass silently. Ошибки никогда не должны замалчиваться.
- Unless explicitly silenced. За исключением замалчивания, которое задано явно.
- In the face of ambiguity, refuse the temptation to guess. Перед лицом неоднозначности сопротивляйтесь искушению угадать.
- There should be one — and preferably only one — obvious way to do it. Должен существовать один — и, желательно, только один — очевидный способ сделать это.
- Although that way may not be obvious at first unless you're Dutch. Хотя он может быть с первого взгляда не очевиден, если ты не голландец.
- Now is better than never. Сейчас лучше, чем никогда.
- Although never is often better than *right* now. Однако, никогда чаще лучше, чем прямо сейчас.
- If the implementation is hard to explain, it's a bad idea. Если реализацию сложно объяснить — это плохая идея.
- If the implementation is easy to explain, it may be a good idea. Если реализацию легко объяснить — это может быть хорошая идея.
- Namespaces are one honking great idea — let's do more of those! Пространства имён — прекрасная идея, давайте делать их больше!
Как писать программы на Python
Интерактивный режим
Грубо говоря, интерпретатор выполняет команды построчно. Пишешь строку, нажимаешь Enter, интерпретатор выполняет ее, наблюдаешь результат.
Это удобно, когда изучаешь особенности языка или тестируешь какую-нибудь небольшую часть кода. Ведь если работать на компилируемом языке, пришлось бы сначала создать файл с кодом на исходном языке программирования, затем передать его компилятору, получить от него исполняемый файл, только потом выполнить программу и оценить результат. К счастью, даже в случае с компилируемыми языками все эти действия может взять на себя специально предназначенная для того или иного языка среда разработки, если вы используете ее.
В операционных системах на базе ядра Linux можно программировать на Python в интерактивном режиме с помощью приложения «Терминал», в котором работает командная оболочка Bash. Здесь, чтобы запустить интерпретатор, надо выполнить команду python3
(может быть просто python
).
pl@desk:~$ python3 Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
В данном случае запустилась версия 3.10.12. Первое число 3 указывает на то, что это интерпретатор для языка программирования Python 3. Последняя строка с тремя угловыми скобками (>>>
) – это приглашение для ввода команд.
Для операционных систем семейства Windows надо скачать интерпретатор с официального сайта языка (https://www.python.org/downloads/windows/). После установки он будет запускаться по ярлыку. Использовать командную оболочку здесь не требуется.
Возможности Python позволяют использовать его как калькулятор. Поскольку команды языка мы не изучали, это хороший способ протестировать интерактивный ввод команд.
>>> 2 + 5 7 >>> 3**2 9 >>> 5 / 4 1.25 >>> (78 - 32) * (21 + 110) 6026
Бывает, что в процессе ввода была допущена ошибка или требуется повторить ранее используемую команду. Чтобы заново не вводить строку, в консоли можно прокручивать историю команд, используя для этого стрелки вверх и вниз на клавиатуре. В среде IDLE (в Windows) для этого используются сочетания клавиш (скорее всего Alt + N и Alt + P).
Чтобы выйти из интерактивного режима, следует ввести команду exit()
.
Создание скриптов
Несмотря на удобства интерактивного режима, чаще всего необходимо сохранить исходный программный код для последующего выполнения и использования. В таком случае подготавливаются файлы, которые передаются затем интерпретатору на исполнение. Файлы с кодом на Python обычно имеют расширение *.py.
Существует множество сред разработки (IDE), в том числе созданные для программирования почти исключительно на Python. Примером такой среды является PyCharm. Однако подойдет и любой "легковесный" текстовый редактор с подсветкой синтаксиса, например, Geany или Sublime Text.
Здесь создается и сохраняется файл с кодом. Далее его можно запустить на выполнение через терминал. При этом сначала указывается интерпретатор (в данном случае python3
), потом имя файла (если файл находится в другом каталоге, то указывается с адресом, или надо перейти в этот каталог с помощью команды cd
оболочки Bash).
pl@desk:~$ python3 test.py 7 Ok, Python!
При этом в редакторе может быть установлен свой встроенный "Терминал", что упрощает работу.
Также в Geany можно просто нажать F5, что отправит файл на исполнение (терминал откроется сам, после выполнения программы и нажатия Enter закроется). Однако при этом должен быть правильно настроен вызываемый интерпретатор (пункт меню Сборка → Установить команды сборки).
В Windows подготовить файлы можно в той же среде IDLE. Для этого в меню следует выбрать команду File → New Window (Crtl + N), откроется чистое (без приглашения >>>
) новое окно. Желательно сразу сохранить файл с расширением .py, чтобы появилась подсветка синтаксиса. После того как код будет подготовлен, снова сохраните файл. Запуск скрипта выполняется командой Run → Run Module (F5). После этого в окне интерактивного режима появится результат выполнения кода.
Практическая работа
-
Запустите интерпретатор Питона в интерактивном режиме. Выполните несколько команд, например, арифметические примеры.
-
Подготовьте файл с кодом и передайте его на исполнение интерпретатору. Обратите внимание, что если просто записать арифметику, то никакого вывода не последует. Вы увидите пустоту. Это отличается от интерактивного режима. Чтобы увидеть решение, надо "обернуть" пример в функцию
print()
.
Примеры решения и дополнительные уроки в pdf-версии курса