Изучаем Python — страница 2 из 61

Впрочем, одной из самых важных причин для использования Python для меня остается сообщество Python, состоящее из невероятно разных и благожелательных людей. Сообщество играет исключительно важную роль в программировании, потому что программирование не является сугубо индивидуальным делом. Многим из нас, даже самым опытным программистам, приходится обращаться за советом к коллегам, которые уже решали похожие задачи. Существование дружного, доброжелательного сообщества помогает решать задачи, и сообщество Python готово прийти на помощь людям, у которых Python является первым языком программирования.

Python — замечательный язык, давайте же браться за дело!

От издательства


Ваши замечания, предложения, вопросы отправляйте по адресу электронной почты comp@piter.com (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На веб-сайте издательства http://www.piter.com вы найдете подробную информацию о наших книгах.

От изготовителя fb2

Питон очень требователен к правильному применению отступов, к сожалению fb2 «съедает» лишние пробелы или табуляции, да, есть теги для оформления кода, но не все читалки правильно их воспринимают.

Поэтому для зрительного восприятия отступов группы пробелов (табуляцию) я заменю группой точек и пробелов « . .»

При необходимости замените их на табуляцию, или группу пробелов.


Часть I. Основы


В части I этой книги представлены базовые концепции, необходимые для написания программ на языке Python. Многие из этих концепций встречаются во всех языках программирования, поэтому они пригодятся вам на протяжении всей карьеры программиста.

В главе 1 вы установите Python на свой компьютер и запустите свою первую программу, которая выводит на экран сообщение Hello world!. В главе 2 вы научитесь хранить информацию в переменных, работать с текстовыми и числовыми данными.

В главах 3 и 4 вы познакомитесь со списками. Списки позволяют хранить любой объем информации в одной переменной, что повышает эффективность работы с данными. Вы сможете работать с сотнями, тысячами и даже миллионами значений всего в нескольких строках кода.

В главе 5 будут представлены команды if. С их помощью вы сможете написать код, который делает что-то одно, если некоторое условие истинно, и что-то другое, если условие не выполняется.

Глава 6 показывает, как использовать словари Python, связывающие разные виды информации. Словари, как и списки, могут содержать столько информации, сколько вы захотите в них поместить.

В главе 7 вы научитесь получать данные от пользователей, чтобы ваши программы стали интерактивными. Также в этой главе описаны циклы while, многократно выполняющие блоки кода, пока некоторое условие остается истинным.

В главе 8 вы займетесь написанием функций — именованных блоков кода, которые решают конкретную задачу и запускаются тогда, когда потребуется.

В главе 9 представлены классы, предназначенные для моделирования реальных объектов: собак, кошек, людей, машин, ракет и т.д. С их помощью вы сможете представить в своем коде любые сущности, реальные или абстрактные.

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

В главе 11 вы научитесь писать тесты для кода. Тесты проверяют, что ваша программа работает так, как предполагается. В результате вы сможете расширять свои программы, не беспокоясь о возможном внесении новых ошибок. Тестирование — один из первых навыков, отличающих новичка от программиста среднего уровня.

1. Начало работы


В этой главе вы запустите свою первую программу на языке Python, hello_world.py. Сначала вы проверите, установлен ли Python на вашем компьютере, и если нет — установите его. Также будет установлен текстовый редактор для подготовки программ Python. Текстовые редакторы распознают код Python и выделяют синтаксические конструкции во время работы, упрощая понимание структуры кода разработчиком.

Подготовка среды программирования


Поддержка Python слегка отличается в разных операционных системах, поэтому вы должны учитывать некоторые аспекты. В этой главе представлены две основные версии Python, используемые в наше время, и описаны основные действия по настройке Python в вашей системе.

Python 2 и Python 3


Сейчас доступны две версии Python: Python 2 и более новая версия Python 3. Каждый язык программирования развивается с появлением новых идей и технологий, и разработчики Python неустанно трудятся над тем, чтобы сделать язык более мощным и гибким. Многие изменения имеют второстепенный характер и малозаметны на первый взгляд, но в отдельных случаях код, написанный на Python 2, некорректно работает в системах с установленной поддержкой Python 3. В книге я буду указывать на существенные различия между Python 2 и Python 3, так что вы сможете следовать приведенным инструкциям независимо от используемой версии.

Если в вашей системе установлены обе версии или вы еще не установили Python, используйте Python 3. Если в вашей системе установлена только версия Python 2 и вы предпочитаете с ходу взяться за написание кода, не желая возиться с установкой, начните с Python 2. Но чем скорее вы перейдете на Python 3, тем лучше — все же полезнее использовать самую новую версию.

Выполнение фрагментов кода Python


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

В этой книге встречаются фрагменты следующего вида:

(1) >>>print("Hello Python interpreter!")

Hello Python interpreter!

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

Hello World!


В мире программирования издавна принято начинать освоение нового языка с программы, выводящей на экран сообщение Hello world! — считается, что это приносит удачу.

На языке Python программа Hello World состоит всего из одной строки:

print("Hello world!")

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

Python в разных операционных системах


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

В этом разделе вы узнаете, как подготовить Python к работе и запустить программу Hello World в вашей системе. Сначала вы проверите, установлена ли поддержка Python в вашей системе, и если нет — установите ее. Затем вы установите простой текстовый редактор и сохраните пустой файл Python с именем hello_world.py. Наконец, вы запустите программу Hello World и устраните любые неполадки. Этот процесс будет описан для всех операционных систем, так что в итоге в вашем распоряжении появится простая и удобная среда программирования на Python.

Python в системе Linux


Системы семейства Linux ориентированы на программистов, поэтому поддержка Python уже установлена на большинстве компьютеров Linux. Люди, которые ­занимаются разработкой и сопровождением Linux, ожидают, что в какой-то момент вы займетесь программированием, и всячески способствуют этому. По этой причине для перехода к программированию вам почти ничего не придется устанавливать, а количество необходимых настроек будет минимальным.

Проверка версии Python


Откройте терминальное окно, запустив приложение Terminal в вашей системе (в Ubuntu нажмите клавиши Ctrl+Alt+T). Чтобы проверить, установлена ли поддержка Python в вашей системе, введите команду python (со строчной буквы p). На экране появится информация о том, какая версия Python у вас установлена, и приглашение >>>, в котором можно вводить команды Python:

$ python

Python 2.7.6 (default, Mar 22 2014, 22:59:38)

[GCC 4.8.2] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

Этот вывод сообщает, что Python 2.7.6 в настоящее время является версией Python по умолчанию, установленной на данном компьютере. Нажмите Ctrl+D или введите exit(), чтобы выйти из приглашения Python и вернуться к приглашению терминала.

Чтобы проверить наличие Python 3, возможно, вам придется указать эту версию; итак, даже при том, что в качестве версии по умолчанию в выходных данных указан Python 2.7, попробуйте ввести команду python3:

$ python3

Python 3.5.0 (default, Sep 17 2015, 13:05:18)

[GCC 4.8.4] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

Из выходных данных видно, что в системе также установлена версия Python 3, так что вы сможете использовать любую из этих версий. Каждый раз, когда вы встречаете команду python в этой книге, вводите вместо нее команду python3. В большинстве дистрибутивов Linux поддержка Python уже установлена, но, если по какой-то причине в вашей системе ее нет или ваша система была укомплектована Python 2, а вы хотите установить Python 3, обращайтесь к приложению А.

Установка текстового редактора


Geany — простой и удобный текстовый редактор; он легко устанавливается, позволяет запускать практически любые программы прямо из редактора (вместо терминала) и использует цветовое выделение синтаксиса, а код выполняется в терминальном окне. В приложении Б приведена информация о других текстовых редакторах, но я рекомендую использовать Geany, если только у вас нет веских причин для работы в другом редакторе.

В большинстве систем Linux установка Geany выполняется одной строкой:

$ sudo apt-get install geany

Если команда не работает, обращайтесь к инструкциям по адресу http://geany.org/Download/ThirdPartyPackages/.

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


Чтобы запустить свою первую программу, откройте Geany. Нажмите клавишу Super (она также часто называется клавишей Windows) и найдите Geany в вашей системе. Создайте ярлык, перетащив значок на панель задач или рабочий стол. Создайте папку для своих проектов и присвойте ей имя python_work. (В именах файлов и папок лучше использовать буквы нижнего регистра и символы подчеркивания, потому что это соответствует соглашениям об именах Python.) Вернитесь к Geany и сохраните пустой файл Python (File—>Save As) с именем hello_world.py в папке python_work. Расширение .py сообщает Geany, что файл содержит программу Python. Оно также подсказывает Geany, как следует запускать программу и как правильно выделить элементы синтаксиса.

После того как файл будет сохранен, введите следующую строку:

print("Hello Python world!")

Если в системе установлено несколько версий Python, проследите за тем, чтобы в Geany была настроена правильная версия. Откройте окно Build—>Set Build Commands. В окне приведены команды Compile и Execute, рядом с каждой из которых располагается команда. Geany предполагает, что правильной командой в каждом случае является python, но, если в системе должна использоваться команда python3, настройку необходимо изменить.

Если команда python3 работала в терминальном сеансе, измените команды Compile и Execute так, чтобы в Geany использовался интерпретатор Python 3. Команда Compile должна выглядеть так:

python3 -m py_compile "%f"

Команда должна быть введена точно в таком виде без малейших изменений. Проследите за правильностью регистра символов и расстановки пробелов.

Команда Execute должна выглядеть так:

python3 "%f"

И снова тщательно проверьте пробелы и регистр символов. На рис. 1.1 показано, как эти команды должны выглядеть в меню конфигурации Geany.

Теперь выполните программу hello_world.py: выберите команду меню Build—>Execute, щелкните на кнопке Execute (с шестеренками) или нажмите клавишу F5.

На экране появляется терминальное окно со следующим выводом:

Hello Python world!

------------------

(program exited with code: 0)

Press return to continue

Если вы не увидели это сообщение, проверьте каждый символ во введенной строке. Может, вы случайно набрали print с прописной буквы? Пропустили одну или обе

Рис. 1.1. Настройка Geany для использования Python 3 в Linux

кавычки или круглые скобки? В языках программирования используется предельно конкретный синтаксис, и при малейшем его нарушении произойдет ошибка. Если программа так и не заработала, обращайтесь к разделу «Решение проблем с установкой» на с. 28.

Запуск Python в терминальном сеансе


Для выполнения фрагментов кода Python можно открыть терминальное окно и ввести команду python или python3, как мы поступили при проверке версии. Сделайте то же самое, но на этот раз введите в терминальном сеансе следующую строку:

>>>print("Hello Python interpreter!")

Hello Python interpreter!

>>>

Сообщение выводится прямо в текущем терминальном окне. Вспомните, что интерпретатор Python закрывается комбинацией клавиш Ctrl+D или командой exit().

Python в системе OS X


В большинстве систем OS X поддержка Python уже установлена. Даже если вы уверены в том, что Python устанавливать не нужно, вам придется установить текстовый редактор и убедиться в том, что он правильно настроен.

Проверка наличия Python


Откройте терминальное окно (команда Applications—>Utilities—>Terminal). Также можно нажать Command+пробел, ввести terminal и нажать Enter. Чтобы проверить, установлена ли поддержка Python в вашей системе, введите команду python (со строчной буквы p). На экране появится информация о том, какая версия Python у вас установлена, и приглашение >>>, в котором можно вводить команды Python:

$ python

Python 2.7.5 (default, Mar 9 2014, 22:15:05)

[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin

Type "help", "copyright", "credits", or "license" for more information.

>>>

Этот вывод сообщает, что Python 2.7.5 в настоящее время является версией Python по умолчанию, установленной на данном компьютере. Нажмите Ctrl+D или введите exit(), чтобы выйти из приглашения Python и вернуться к приглашению терминала.

Чтобы проверить наличие Python 3, попробуйте ввести команду python3. На экране может появиться сообщение об ошибке, но, если из вывода следует, что версия Python 3 в вашей системе установлена, вы сможете использовать ее без необходимости установки. Если команда python3 работает в вашей системе, каждый раз, когда вы встречаете команду python в этой книге, вводите вместо нее команду python3. Если по какой-то причине в вашей системе нет Python или ваша система была укомплектована Python 2, а вы хотите установить Python 3, обращайтесь к приложению А.

Запуск Python в терминальном сеансе


Для выполнения фрагментов кода Python можно открыть терминальное окно и ввести команду python или python3, как мы поступили при проверке версии. Сделайте то же самое, но на этот раз введите в терминальном сеансе следующую строку:

>>>print("Hello Python interpreter!")

Hello Python interpreter!

>>>

Сообщение выводится прямо в текущем терминальном окне. Вспомните, что интерпретатор Python закрывается комбинацией клавиш Ctrl+D или командой exit().

Установка текстового редактора


Sublime Text — простой и удобный текстовый редактор; он легко устанавливается в OS X, позволяет запускать практически любые программы прямо из редактора (вместо терминала) и использует цветовое выделение синтаксиса, а код выполняется в терминальном окне, встроенном в окно Sublime Text. В приложении Б приведена информация о других текстовых редакторах, но я рекомендую использовать Sublime Text, если только у вас нет веских причин для работы в другом редакторе.

Программу установки Sublime Text можно загрузить по адресу http://sublimetext.com/3. Щелкните на ссылке загрузки и найдите программу установки для OS X. Политика лицензирования Sublime Text более чем либеральна: вы можете бесплатно пользоваться редактором сколь угодно долго, но автор требует приобрести лицензию, если программа вам понравилась и вы собираетесь использовать ее в будущем. После того как программа установки будет загружена, откройте ее и перетащите значок Sublime Text в папку Applications.

Настройка Sublime Text для Python 3


Если для запуска терминального сеанса Python вместо python используется другая команда, вам придется настроить Sublime Text, чтобы программа знала, где найти правильную версию Python в вашей системе. Чтобы узнать полный путь к интерпретатору Python, введите следующую команду:

$ type -a python3

python3 is /usr/local/bin/python3

Теперь откройте Sublime Text и выберите команду Tools—>Build System—>New Build System. Команда открывает новый конфигурационный файл. Удалите его текущее содержимое и введите следующий код:

{

. ."cmd": ["/usr/local/bin/python3", "-u", "$file"],

}

Этот код приказывает Sublime Text использовать команду python3 вашей системы для запуска текущего открытого файла. Проследите за тем, чтобы в коде использовался путь, полученный при выполнении команды type -a python3 на предыдущем шаге. Сохраните файл с именем Python3.sublime-build в каталоге по умолчанию, который Sublime Text открывает при выполнении команды Save.

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


Чтобы запустить свою первую программу, запустите Sublime Text — откройте папку Applications и сделайте двойной щелчок на значке Sublime Text. Также можно нажать Command+пробел и ввести sublime text в открывшейся панели поиска.

Создайте для своих проектов папку с именем python_work. (В именах файлов и папок лучше использовать буквы нижнего регистра и символы подчеркивания, потому что это соответствует соглашениям об именах Python.) Сохраните пустой файл Python (File—>Save As) с именем hello_world.py в папке python_work. Расширение .py сообщает Sublime Text, что файл содержит программу Python. Оно также подсказывает Sublime Text, как следует запускать программу и как правильно выделить элементы синтаксиса.

После того как файл будет сохранен, введите следующую строку:

print("Hello Python world!")

Если команда python работает в вашей системе, программу можно запустить ­командой меню Tools—>Build или комбинацией клавиш Ctrl+B. Если вы настроили Sublime Text на использование другой команды вместо python, выберите команду меню Tools—>Build System, а затем Python 3. Тем самым вы назначаете Python 3 версией Python по умолчанию, и в дальнейшем программы можно будет запускать командой Tools—>Build или комбинацией клавиш Command+B.

Терминальное окно должно отображаться в нижней части окна Sublime Text со следующим текстом:

Hello Python world!

[Finished in 0.1s]

Если вы не увидели это сообщение, проверьте каждый символ во введенной строке. Может, вы случайно набрали print с прописной буквы? Пропустили одну или обе кавычки или круглые скобки? В языках программирования используется предельно конкретный синтаксис, и при малейшем его нарушении произойдет ошибка. Если программа так и не заработала, обращайтесь к разделу «Решение проблем с установкой» на с. 28.

Python в системе Windows


Windows далеко не всегда включает поддержку Python. Скорее всего, вам придется загрузить и установить Python, а затем загрузить и установить текстовый редактор.

Установка Python


Для начала проверьте, установлена ли поддержка Python в вашей системе. ­Откройте окно командной строки: введите command в меню Пуск или щелкните на ­рабочем столе с нажатой клавишей Shift и выберите команду Open command window here. Введите в окне командной строки команду python в нижнем регистре.

Рис. 1.2. Не забудьте установить флажок Add Python to PATH

Если на экране появится приглашение >>>, значит, в системе установлена поддержка Python. Впрочем, скорее всего вместо приглашения появится сообщение об ошибке, в котором говорится, что команда python не опознана системой.

В таком случае загрузите программу установки Python для Windows. Откройте страницу http://python.org/downloads/. Вы увидите на ней две кнопки: для загрузки Python 3 и для загрузки Python 2. Щелкните на кнопке Python 3, которая запускает автоматическую загрузку правильного установочного пакета для вашей системы. После того как загрузка файла будет завершена, запустите программу установки. Не забудьте установить флажок Add Python to PATH — это упростит правильную настройку системы. На рис. 1.2 изображено окно мастера установки с активным флажком.

Запуск терминального сеанса


Настроить текстовый редактор будет несложно, если вы сначала подготовите систему к запуску Python в терминальном сеансе. Откройте окно командной строки и введите команду python в нижнем регистре. Если на экране появится приглашение Python (>>>), значит, система Windows обнаружила установленную версию Python:

C:\>python

Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 22:15:05) [MSC v.1900 32 bit

(Intel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>>

Если команда сработала, переходите к следующему разделу «Запуск Python в терминальном сеансе».

Однако вывод может выглядеть и так:

C:\>python

'python' is not recognized as an internal or external command, operable

program or batch file.

В этом случае необходимо сообщить Windows, как найти свежеустановленную версию Python. Команда python в вашей системе обычно хранится на диске C; запустите Проводник Windows и откройте диск C. Найдите папку, имя которой начинается с Python, откройте ее и найдите файл python (в нижнем регистре). Например, на моем компьютере существует папка Python35, в которой находится файл с именем python, поэтому путь к команде python в вашей системе имеет вид C:\Python35\python. Если найти файл не удалось, введите строку python в поле поиска в Проводнике Windows — система поиска покажет, где именно хранится команда python в вашей системе.

Когда вы решите, что знаете путь к команде, проверьте его: введите этот путь в терминальном окне. Откройте окно командной строки и введите только что найденный полный путь:

C:\>C:\Python35\python

Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 22:15:05) [MSC v.1900 32 bit

(Intel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>>

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

Запуск Python в терминальном сеансе


Введите в терминальном сеансе следующую строку и убедитесь в том, что на экране появился вывод Hello Python world!:

>>>print("Hello Python world!")

Hello Python interpreter!

>>>

Каждый раз, когда вы захотите выполнить фрагмент кода Python, откройте окно командной строки и запустите терминальный сеанс Python. Чтобы закрыть терминальный сеанс, нажмите Ctrl+Z или введите команду exit().

Установка текстового редактора


Geany — простой и удобный текстовый редактор; он легко устанавливается, позволяет запускать практически любые программы прямо из редактора (вместо терминала) и использует цветовое выделение синтаксиса, а код выполняется в терминальном окне. В приложении Б приведена информация о других текстовых редакторах, но я рекомендую использовать Geany, если только у вас нет веских причин для работы в другом редакторе.

Программу установки Geany для Windows можно загрузить по адресу http://geany.org/. Щелкните в строке Releases меню Download и найдите пакет geany-1.25_setup.exe (или что-нибудь в этом роде). Запустите программу и подтвердите все значения по умолчанию.

Чтобы запустить свою первую программу, откройте Geany: нажмите клавишу Windows и найдите Geany в вашей системе. Создайте ярлык, перетащив значок на панель задач или рабочий стол. Создайте папку для своих проектов и присвойте ей имя python_work. (В именах файлов и папок лучше использовать буквы нижнего регистра и символы подчеркивания, потому что это соответствует соглашениям об именах Python.) Вернитесь к Geany и сохраните пустой файл Python (File—>Save As) с именем hello_world.py в папке python_work. Расширение .py сообщает Geany, что файл содержит программу Python. Оно также подсказывает Geany, как следует запускать программу и как правильно выделить элементы синтаксиса.

После того как файл будет сохранен, введите следующую строку:

print("Hello Python world!")

Если команда python успешно сработала в вашей системе, то дополнительная настройка Geany не нужна; пропустите следующий раздел и переходите к разделу «Запуск программы Hello World» на с. 28. Если для запуска интерпретатора Python пришлось вводить полный путь вида C:\Python35\python, выполните инструкции по настройке Geany для вашей системы, приведенные в следующем разделе.

Настройка Geany


Чтобы настроить Geany для работы с Python, откройте окно Build—>Set Build Commands. В окне приведены команды Compile и Execute, рядом с каждой из которых располагается команда. Команды Compile и Execute начинаются с команды python, записанной символами нижнего регистра, но Geany не знает, где в вашей системе находится исполняемый файл python. К команде нужно добавить путь, который вы ввели в окне командной строки.

Добавьте в начало команд Compile и Execute диск и путь к папке, в которой находится файл. Команда Compile должна выглядеть примерно так:

C:\Python35\python -m py_compile "%f"

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

Рис. 1.3. Настройка Geany для использования Python 3 в Windows

Команда Execute должна выглядеть примерно так:

C:\Python35\python "%f"

И снова внимательно проверьте пробелы и регистр символов. На рис. 1.3 показано, как эти команды должны выглядеть в меню конфигурации Geany.

Завершив настройку команд, нажмите кнопку OK.

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


Все должно быть готово для успешного выполнения программы. Запустите программу hello_world.py: выберите команду меню Build—>Execute, щелкните на кнопке Execute (с шестеренками) или нажмите клавишу F5. На экране появляется терминальное окно со следующим выводом:

Hello Python world!

------------------

(program exited with code: 0)

Press return to continue

Если вы не увидели это сообщение, проверьте каждый символ во введенной строке. Может, вы случайно набрали print с прописной буквы? Пропустили одну или обе кавычки или круглые скобки? В языках программирования используется предельно конкретный синтаксис, и при малейшем его нарушении произойдет ошибка. Если программа так и не заработала, возможно, следующий раздел поможет вам в этом.

Решение проблем с установкой