щщщ. ! Учебник Python. Язык программирования
Скачать 5.27 Mb.
|
Язык программирования Python С.В. Лемешевский ( sergey.lemeshevsky@gmail.com ) Институт математики НАН Беларуси Feb 20, 2020 Введение. Установка. Версии На сегодняшний день существуют две версии Python это Python 2 и Python 3, у них отсутствует полная совместимость друг с другом. На данный момент вторая версия ещё широко используется, но, судя по изменениям, которые происходят, со временем, она останется только для запуска старого кода. Мы будем Python 3, ив дальнейшем, если где-то будет встречаться слово Python, то под ним следует понимать Python 3. Случаи применения 2 будут специально оговариваться. Установка Для установки интерпретатора Python на ваш компьютер, первое, что нужно сделать — это скачать дистрибутив. Загрузить его можно с официального сайта, перейдя по ссылке https://www.python.org/downloads/ v vi 1 Введение Установка Python в Для операционной системы дистрибутив распространяется либо в виде исполняемого файл, либо в виде архивного файла. Порядок установки. Запустите скачанный установочный файл. Выберете способ установки 1.1 Установка В данном окне предлагается два варианта Install и Customize installation. При выборе Install Now, Python установится в папку по указанному пути. Помимо самого интерпретатора будет установлен IDLE (интегрированная среда разработки, pip (пакетный менеджер) и документация, а также будут созданы соответствующие ярлыки и установлены связи файлов, имеющие расширение .py с интерпретатором Python. Customize installation – это вариант настраиваемой установки. Опция Add python 3. to нужна для того, чтобы появилась возможность запускать интерпретатор без указания полного пути до исполняемого файла при работе в командной строке. Отметьте необходимые опций установки (доступно при выборе Customize На этом шаге нам предлагается отметить дополнения, устанавливаемые вместе с интерпретатором Python . Рекомендуем выбрать все опции Documentation – установка документаций pip – установка пакетного менеджера pip. • tcl/tk and IDLE – установка интегрированной среды разработки) и библиотеки для построения графического интерфейса (tkinter). • Выберете место установки (доступно при выборе installation ) viii 1 Введение Помимо указания пути, данное окно позволяет внести дополнительные изменения в процесс установки с помощью опций Install for all users – Установить для всех пользователей. Если не выбрать данную опцию, то будет предложен вариант инсталляции в папку пользователя, устанавливающего интерпретатор Associate files with Python – Связать файлы, имеющие расширение .py, с Python. При выборе данной опции будут внесены изменения в Windows , позволяющие запускать Python скрипты по двойному щелчку мыши Create shortcuts for installed applications – Создать ярлыки для запуска приложений Add Python to environment variables – Добавить пути до интерпретатора Python в переменную PATH. • Precomple standard library – Провести прекомпиляцию стандартной библиотеки. Последние два пункта debugging symbols, Download debug binaries) связаны с загрузкой компонентов для отладки, их мы устанавливать не будем. После успешной установки вас ждет следующее сообщение Установка Установка Python в Чаще всего интерпретатор уже в входит в состав дистрибутива. Это можно проверить набрав в терминале python или В первом случае, вы запустите Python 2 во втором – Python 3. В будущем, скорее всего, во всех дистрибутивах, включающих Python, будет входить только третья версия. Если у вас, при попытке запустить Python, выдается сообщение о том, что он не установлен, или установлен, ноне тот, что вы хотите, то у вас есть два пути а) собрать Python из исходников б) взять из репозитория. Например, для установки из репозитория в Ubuntu воспользуйтесь командой sudo apt‐get install python3 x 1 Введение. Установка Для удобства запуска примеров и изучения языка Python , советуем установить на свой ПК пакет Anaconda . Этот пакет включает в себя интерпретатор языка Python (есть версии 2 и 3), набор наиболее часто используемых библиотеки удобную среду разработки и исполнения, запускаемую в браузере. Для установки этого пакета, предварительно нужно скачать дистрибутив Есть варианты поди Установка Anaconda в Windows. 1. Запустите скачанный инсталлятор. В первом появившемся окне необходимо нажать. Далее следует принять лицензионное соглашение 1.1 Установка xi 3. Выберете одну из опций установки Just Me – только для пользователя, запустившего установку для всех пользователей. 4. Укажите путь, по которому будет установлена xii 1 Введение. Укажите дополнительные опции Add Anaconda to the system PATH environment variable добавить Anaconda в системную переменную PATH; • Register Anaconda as the system Python 3 – использовать, как интерпретатор Python 3 по умолча- нию. Для начала установки нажмите на кнопку «Install». 1.1 Установка xiii 5. После этого будет произведена установка Anaconda на ваш компьютер. Установка Anaconda в Скачайте дистрибутив для Linux, он будет иметь расширение .sh , и запустите установку командой bash имя_дистрибутива.sh В результате вы увидите приглашение к установке. Для продолжения процессе нажмите «Enter». xiv 1 Введение. Прочитайте лицензионное соглашение, его нужно пролистать до конца. Согласитесь с ним, для этого требуется набрать в командной строке yes, в ответе на вопрос инсталлятора: Terminal Terminal> Do you approve the license terms? [yes|no] 3. Выберете место установки. Можно выбрать один из следующих вариантов 1.1 Установка xv • Press ENTER to confirm the location – нажмите для принятия предложенного пути установки. Путь по умолчанию для моей машины /home/tester/anaconda3 он представлен чуть выше данного меню Press CTRL‐C to abort the нажмите для отмены установки Or specify a different location below – или укажите другой путь в строке ниже. Нажмите «ENTER». 4. После этого начнется установка xvi 1 Введение. Проверка работоспособности Теперь проверим работоспособность всего того, что мы установили. Проверка интерпретатора Для начала протестируем интерпретатор в командном режиме. Если выработаете в Windows , то нажмите сочетание Win+R ив появившемся окне введите python. В Linux откройте окно терминала ив нем введите python3 (или В результате Python запустится в командном режиме, выглядеть это будет примерно так (картинка приведена для Windows, в Linux результат будет аналогичным): В окне введите, Результат должен быть следующий 1.1 Установка Проверка Здесь и далее будем считать, что пакет установлен в Windows, в папку в Linux, вы его можете найти в каталоге, который выбрали при установке. Перейдите в папку Scripts и введите в командной строке Если вы находитесь в Windows и открыли папку через проводник, то для запуска интерпретатора командной строки для этой папки в поле адреса введите cmd. xviii 1 Введение В результате запустится веб-сервер и среда разработки в браузере. Создайте ноутбук для разработки, для этого нажмите на кнопку «New» (в правом углу окна) ив появившемся списке выберете В результате будет создана новая страница в браузере с ноутбуком. Введите впервой ячейке команду print ( ”Hello, и нажмите Alt+Enter на клавиатуре. Ниже ячейки должна появиться соответствующая надпись 1.2 Запуск программ на Python xix 1.2. Запуск программ на Программный код на языке Python можно записать с помощью любого простого текстового редактора, который способен загружать и сохранять текст либо в кодировке, либо UTF-8. По умолчанию предполагается, что файлы с программным кодом на языке Python сохраняются в кодировке UTF-8, надмножестве кодировки с помощью которой можно представить практически любой символ любого национального алфавита. Файлы с программным кодом на языке Python обычно имеют расширение, хотя в некоторых подобных системах (таких как Linux и Mac OS X) некоторые приложения на языке не имеют расширения, а программы на языке с графическим интерфейсом, в частности в и Mac OS X, обычно имеют расширение В этой книге все время будет использоваться расширение для обозначения консольных программ и модулей и расширение .pyw – для программ с графическим интерфейсом. Все примеры, представленные в книге, не требуют изменений для запуска в любой из платформ, поддерживаемых Python Язык Python – это интерпретируемый язык. Это означает, что помимо непосредственно самой программы, вам необходим специальный инструмент для её запуска. Напомним, что существуют компилируемые и интерпрети- xx 1 Введение руемые языки программирования. В первом случае, программа с языка высокого уровня переводится в машинный код для конкретной платформы. В дальнейшем, среди пользователей, она, как правило, распространяется в виде бинарного файла. Для запуска такой программы ненужны дополнительные программные средства (за исключением необходимых библиотек, но эти тонкости выходят за рамки нашего обсуждения. Самыми распространенными языками такого типа являются C++ и C . Программы на интерпретируемых языках, выполняются интерпретатором и распространяются в виде исходного кода может работать в двух режимах интерактивный пакетный. Интерактивный режим работы В интерактивный режим можно войти, набрав в командной строке python или В результате Python запустится в интерактивном режиме и будет ожидать ввод команд пользователя 1.2 Запуск программ на Python Если же у вас есть файл с исходным кодом на Python , ивы его хотите запустить, то для этого нужно в командной строке вызвать интерпретатор Python ив качестве аргумента передать ваш файл. Например, для файла с именем test.py процедура запуска будет выглядеть так python Откройте Python в интерактивном режиме и наберите в нем следующее, И нажмите ENTER В ответ на это интерпретатор выполнит данную строку и отобразит строкой ниже результат своей работы xxii 1 Введение можно использовать как калькулятор для различных вычислений, а если дополнительно подключить необходимые математические библиотеки, то по своим возможностям он становится практически равным таким пакетам как Matlab, Octave и т.п. Различные примеры вычислений приведены ниже. Более подробно об арифметических операциях будет рассказано далее. Для выхода из интерактивного режима, наберите команду и нажмите ENTER В комплекте вместе с интерпретатором Python идет (интегрированная среда разработки. По своей сути она подобна интерпретатору, запущенному в интерактивном режиме с расширенным набором возможностей (подсветка синтаксиса, просмотр объектов, отладка и т.п.). Для запуска IDLE в Windows необходимо перейти в папку вменю Пуски найти там ярлык с именем (Python 3 XX-bit)». 1.2 Запуск программ на Python В Linux оболочка IDLE по умолчанию отсутствует, поэтому ее предварительно нужно установить. Для этого, если у вас Ubuntu , введите в командной строке (для 3.4): Terminal Terminal> sudo apt‐get install В результате IDLE будет установлен на ваш компьютер. Для запуска оболочки, введите Ниже представлен внешний вид IDLE в ОС Linux. 1.2.2. Пакетный режим работы Теперь запустим Python в режиме интерпретации файлов с исходным кодом (пакетный режим. Создайте файл с именем test.py, откройте его с помощью любого текстового редактора и введите следующий код xxiv 1 Введение Эта программа принимает целое число на входи выводит его квадрат. Для запуска, наберите в командной строке Пример работы программы приведен в окне ниже Типы и модель данных 2 Здесь разберем как Python работает с переменными и определим, какие типы данных можно использовать в рамках этого языка. Подробно рассмотрим модель данных, а также механизмы создания и изменения значения переменных. Кратко о типизации языков программирования Если достаточно формально подходить к вопросу о типизации языкато можно сказать, что он относится к языкам с неявной сильной динамической типизацией. Неявная типизация означает, что при объявлении переменной вам ненужно указывать её тип, при явной – это делать необходимо. В качестве примера языков с явной типизацией можно привести Java, C++ . Вот как будет выглядеть объявление целочисленной переменной в Java и Java: int a = 1 ; xxv xxvi 2 Типы и модель данных Python: a = 1 2.2. Типы данных в В Python типы данных можно разделить на встроенные в интерпретатор (built‐in) и не встроенные, которые можно использовать при импортировании соответствующих модулей. К основным встроенным типам относятся. None (неопределенное значение переменной. Логические переменные (Boolean Type) 3. Числа (Numeric Type) a. int – целое число b. float – число с плавающей точкой c. complex – комплексное число. Списки (Sequence Type) a. list – список b. tuple – кортеж c. range – диапазон. Строки (Text Sequence Type) a. str 6. Бинарные списки ( Binary Sequence Types ) a. bytes – байты b. bytearray – массивы байт c. memoryview – специальные объекты для доступа к внутренним данным объекта через protocol buffer 7. Множества (Set Types) a. set – множество b. frozenset – неизменяемое множество. Словари (Mapping Types) a. dict – словарь 2.3 Модель данных xxvii 2.3. Модель данных Рассмотрим как создаются объекты в памяти, их устройство, процесс объявления новых переменных и работу операции присваивания. Для того, чтобы объявить и сразу инициализировать переменную необходимо написать её имя, потом поставить знак равенства и значение, с которым эта переменная будет создана. Например строка Объявляет переменную b и присваивает ей значение Целочисленное значение 5 в рамках языка Python по сути своей является объектом. Объект, в данном случае это абстракция для представления данных, данные – это числа, списки, строки и т.п. При этом, подданными следует понимать как непосредственно сами объекты, таки отношения между ними (об этом чуть позже. Каждый объект имеет три атрибута – это идентификатор, значение и тип. Идентификатор – это уникальный признак объекта, позволяющий отличать объекты друг от друга, а значение непосредственно информация, хранящаяся в памяти, которой управляет интерпретатор. При инициализации переменной, на уровне интерпретатора, происходит следующее создается целочисленный объект 5 (можно представить, что в этот момент создается ячейка и число кладется в эту ячейку данный объект имеет некоторый идентификатор, значение, и тип целое число посредством оператора = создается ссылка между переменной и целочисленным объектом 5 (переменная b ссылается на объект 5). xxviii 2 Типы и модель данных Замечание Имя переменной не должно совпадать с ключевыми словами интерпретатора Python . Список ключевых слов можно получить непосредственно в программе, для этого нужно подключить модуль keyword и воспользоваться командой keyword.kwlist. import keyword ( ”Python keywords: ” , keyword Проверить является или нет идентификатор ключевым словом можно так iskeyword( ”try” ) True >>> keyword Для того, чтобы посмотреть на объект с каким идентификатором ссылается данная переменная, можно использовать функцию id(). >>> a = 4 >>> b = Как видно из примера, идентификатор – это некоторое целочисленное значение, посредством которого уникально адресуется объект. Изначально переменная a ссылается на объект 4 с идентификатором 1829984576, переменная 2.4 Изменяемые и неизменяемые типы данных xxix b – на объект с id = 1829984592. После выполнения операции присваивания a = b, переменная a стала ссылаться на тот же объект, что и Тип переменной можно определить с помощью функции. Пример использования приведен ниже 10 >>> b = ”hello” >>> c = ( 1 , 2 ) >>> type (a) < class ’ int ’ > >>> type (b) < class ’ str ’ > >>> type (c) < class ’ tuple ’ > 2.4. Изменяемые и неизменяемые типы данных В Python существуют изменяемые и неизменяемые типы xxx 2 Типы и модель данных К неизменяемым (immutable) типам относятся целые числа (int); • числа с плавающей точкой (float); • комплексные числа (complex); • логические переменные (bool); • кортежи (tuple); • строки (str); • неизменяемые множества (frozen К изменяемым ( mutable ) типам относятся списки (list); • множества (set); • словари (Как уже было сказано ранее, при создании переменной, вначале создается объект, который имеет уникальный идентификатор, тип и значение, после этого переменная может ссылаться на созданный объект. Неизменяемость типа данных означает, что созданный объект больше не изменяется. Например, если мы объявим переменную k = 15, то будет создан объект со значением, типа int и идентификатором, который можно узнать с помощью функции id(). >>> k = 15 >>> id (k) 1672501744 >>> type (k) < class ’ int ’ Объект сбудет иметь значение 15 и изменить его уже нельзя. Если тип данных изменяемый, то можно менять значение объекта. Например, создадим список [1, 2], а потом заменим второй элемент на 3. >>> a = [ 1 , 2 ] >>> id (a) 47997336 2.4 Изменяемые и неизменяемые типы данных xxxi >>> a[ 1 ] = Как видно, объект на который ссылается переменная был изменен. Это можно проиллюстрировать следующим рисунком. В рассмотренном случаев качестве данных списка, выступают не объекты, а отношения между объектами. Т.е. в переменной a хранятся ссылки на объекты содержащие числа 1 и 3, а не непосредственно сами эти числа Арифметические операции. Арифметические операции с целыми и вещественными числами Все эксперименты будем проводить в Python, запущенном в интерактивном режиме. Сложение. Складывать можно непосредственно сами числа ... >>> 3 + 2 либо переменные, но они должны предварительно быть проинициализированы. >>> a = 3 >>> b = Результат операции сложения можно присвоить другой переменной 3 >>> b = 2 >>> c = a + b xxxiii xxxiv 3 Арифметические операции >>> (c) 5 либо ей же самой, в таком случае можно использовать полную или сокращенную запись, полная выглядит так 3 >>> b = сокращенная так 3 >>> b = Все перечисленные выше варианты использования операции сложения могут быть применены для всех нижеследующих операций. Вычитание. >>> 4 ‐ 2 2 >>> a = 5 >>> b = Деление 9 / 3 3.0 >>> a = 7 >>> b = 4 >>> a / b 1.75 3.2 Работа с комплексными числами Получение целой части отделения Получение дробной части отделения Возведение в степень 5**4 625 >>> a = 4 >>> b = 3 >>> a ** b 64 3.2. Работа с комплексными числами Для создания комплексного числа можно использовать функцию complex(a, b), в которую, в качестве первого аргумента, передается действительная часть, в качестве второго – мнимая. Либо записать число в виде Рассмотрим несколько примеров. Создание комплексного числа xxxvi 3 Арифметические операции Комплексные числа можно складывать, вычитать, умножать, делить и возводить в степень У комплексного числа можно извлечь действительную и мнимую части 3+2 j >>> x real 3.0 >>> x imag 2.0 3.3 Битовые операции Для получения комплексносопряженного число необходимо использовать метод conjugate(). >>> x conjugate() ( 3‐2 j) 3.3. Битовые операции В Python доступны битовые операции, их можно производить над целыми числами. Побитовое И (AND). >>> p = 9 >>> q = Побитовое ИЛИ (Побитовое Исключающее ИЛИ (Инверсия Сдвиг вправо и влево 18 xxxviii 3 Арифметические операции. Представление чисел в других системах счисления В своей повседневной жизни мы используем десятичную систему исчисления, но при программирования, очень часто, приходится работать с шестнадцатеричной, двоичной и восьмеричной. Представление числа в шестнадцатеричной системе Представление числа в восьмеричной системе. >>> oct (m) ’0o363130’ Представление числа в двоичной системе. Библиотека (модуль) math В стандартную поставку Python входит библиотека math в которой содержится большое количество часто используемых математических функций. Для работы сданным модулем его предварительно нужно импортировать. import math Рассмотрим наиболее часто используемые функции. >>math_pow(3,4)81.0Функция_math.sqrt(x)_.'>Функция_math.log2(x)_._Логарифм_по_основанию_2.>>>math_log2(8)3.0Функция_math.log10(x)_.'>Функция_math.floor(x)_._Возвращает_ближайшее_целое_число_меньшее,_чем_x.>>>math_floor(3.2)3Функция_math.exp(x)_.'>Функция_math.fabs(x)_._Возвращает_абсолютное_значение_числа_fabs(‐7)7.0Функция_math.factorial(x)_.'>Функция math.ceil(x) . Возвращает ближайшее целое число большее, чем x. >>> math ceil( 3.2 ) 4 3.5 Библиотека (модуль) math xxxix Функция math.fabs(x) . Возвращает абсолютное значение числа fabs( ‐7 ) 7.0 Функция math.factorial(x) . Вычисляет факториал x. >>> math factorial( 5 ) 120 Функция math.floor(x) . Возвращает ближайшее целое число меньшее, чем x. >>> math floor( 3.2 ) 3 Функция math.exp(x) . Вычисляет e**x. >>> math exp( 3 ) 20.08553692318766 Функция math.log2(x) . Логарифм по основанию 2. >>> math log2( 8 ) 3.0 Функция math.log10(x) . Логарифм по основанию 10. >>> math Функция, По умолчанию вычисляет логарифм по основанию e, дополнительно можно указать основание логарифма log( 5 ) 1.609437912434100 >>> math log( 4 , 8 ) 0.666666666666666 xl 3 Арифметические операции Функция math.pow(x, Вычисляет значение x в степени y. >>> math pow( 3 , 4 ) 81.0 Функция math.sqrt(x) . Корень квадратный от x. >>> math Тригонометрические функции, их мы оставим без примера math.cos(x) • math.sin(x) • math.tan(x) • math.acos(x) • math.asin(x) • И напоследок пару констант math.pi — число π. • math.e — число Помимо перечисленных, модуль math содержит ещё многоразличных функций, за более подробной информацией можете обратиться на официальный сайт (https://docs. python.org/3/library/math.html). |