Реферат
Е.И. Буйволова
« » 2019 г.
Руководитель –
ст. преподаватель «АиСУ»
Е.И. Захаренко
« » 2019 г.
Омск 2019
Содержание
Введение...................................................................................................................3
История создания языка..........................................................................................4
Почему программисты используют Python?.........................................................6
Кто в наше время использует Python?...................................................................8
Философия языка....................................................................................................9
Достоинства языка Python....................................................................................10
Недостатки языка Python......................................................................................12
Основные типы объектов языка...........................................................................13
Циклы while и for...................................................................................................16
Основы функций....................................................................................................17
Математические операции....................................................................................20
Заключение.............................................................................................................22
Библиографический список..................................................................................23
2
Введение
В связи с наблюдаемым в настоящее время стремительным развитием
персональной вычислительной техники, происходит постепенное изменение
требований, предъявляемых к языкам программирования. Все большую роль
начинают играть интерпретируемые языки, поскольку возрастающая мощь
персональных компьютеров начинает обеспечивать достаточную скорость
выполнения интерпретируемых программ. А единственным существенным
преимуществом компилируемых языков программирования является
создаваемый ими высокоскоростной код.
В связи с этим, определенный интерес представляет рассмотрение
сравнительно нового языка программирования Python, который был создан
его автором Гвидо Ван Россумом в начале 90-х годов.
Python является интерпретируемым, изначально объектно-
ориентированным языком программирования. Он чрезвычайно прост и
содержит небольшое число ключевых слов, вместе с тем очень гибок и
выразителен. Это язык более высокого уровня, нежели Pascal, C++ и,
естественно C, что достигается, в основном, за счет встроенных
высокоуровневых структур данных (списки, словари, тьюплы). Как правило,
в первую, очередь он направлен на высокую производительность и хорошую
читаемость программного кода. Чтобы добиться этого синтаксис его ядра,
максимально упрощен, но вот в расширениях большое количество самых
разных, в том числе и нестандартных функций.
3
История создания языка
Создание языка Python начиналось довольно медленно и неуверенно.
Главным энтузиастом, который в 1990 году пытался воплотить Python в
реальность, стал Гвидо Ван Россум. Именно этот человек, работая над
разработкой языка ABC в Голландском институте CWI, понял, что хотел бы
создать нечто новое.
Интересным моментом выступает то, что первый рабочий прототип
Python был создан на домашнем Macintosh, да и еще за пару выходных. Что
касается распространения, то делалось это с помощью Интернет.
Стоить отметить, что язык получил название «Python» не в честь вида
змей, как ошибочно считают многие разработчики. Во времена разработки
«Питона» Гвидо любил смотреть комедийное шоу «Воздушный цирк Монти
Пайтона», поэтому и назвал своей проект в честь Монти Пайтона.
Так как Питон имел отличный потенциал и свободно распространялся
через Интернет, в него появилось ядро последователей — люди, которые
были заинтересованы в развитии Python как языка программирования. В
начале своего пути, этот язык имел вид небольшого интерпретатора с малым
количеством функций и полным отсутствием ООП1, что всех не устраивало и
мотивировало на дальнейшее развитие языка.
Уже в 1991 году стали появляться первые средства ООП разработки.
3 декабря 2008 года, после длительного тестирования, вышла первая
версия Python 3000 (или Python 3.0, также используется сокращение Py3k). В
Python 3000 устранены многие недостатки архитектуры с максимально
возможным (но не полным) сохранением совместимости со старыми
версиями Python. На сегодня поддерживаются обе ветви развития (Python 3.x
и 2.x).
5
На сегодняшний день программный код на языке Python имеет
возможность вызывать функции из библиотек на языке C/C++, сам
вызываться из программ, написанных на языке C/C++, интегрироваться с
программными компонентами на языке Java, взаимодействовать с такими
платформами, как COM и .NET, и производить обмен данными через
последовательный порт или по сети с помощью таких протоколов, как SOAP,
XML-RPC и CORBA.
Благодаря непринужденности языка Python и наличию встроенных ин-
струментальных средств процесс программирования может приносить удо-
вольствие. На первый взгляд это трудно назвать преимуществом, тем не
менее, удовольствие, получаемое от работы, напрямую влияет на произво-
дительность труда.
6
Кто в наше время использует Python?
Наиболее правдоподобной оценкой числа пользователей Python
является число, близкое 1 миллиону человек во всему мире (с небольшой
погрешностью). Эта оценка основана на различных статистических
показателях, таких как количество загрузок и результаты опросов
разработчиков. Дать более точную оценку достаточно сложно, потому что
Python является открытым программным обеспечением – для его
использования
не требуется проходить лицензирование. Более того, Python по умолчанию
включается в состав дистрибутивов Linux, поставляется вместе с
компьютерами Macintosh и некоторыми другими программными и
аппаратными продуктами, что существенно затрудняет оценку числа
пользователей.
Вообще же количество пользователей Python значительно больше и
вокруг него сплотилось очень активное сообщество разработчиков. Благодаря
тому, что Python появился более 19 лет тому назад и получил широкое
распространение, он отличается высокой стабильностью и надежностью.
Python используется не только отдельными пользователями, он также
применяется компаниями для создания продуктов, приносящих настоящую
прибыль. Например:
1. Компания Google широко использует Python в своей поисковой
системе и оплачивает труд создателя Python.
2. Служба коллективного использования видеоматериалов YouTube
в значительной степени реализована на языке Python.
3. Популярная программа BitTorrent для обмена файлами в
пиринговых сетях (peer-to-peer) написана на языке Python.
4. Такие компании, как Intel, Cisco, Qualcomm и IBM, используют
Python для тестирования аппаратного обеспечения.
5. Такая компании, как Pixar и другие, используют Python в
производстве анимационных фильмов.
6. NASA использует Python для научных вычислений.
7. iRobot использует Python в разработке коммерческих
роботизированных устройств.
8. Проект «ноутбук каждому ребенку» (One Laptop Per Child, OLPC)
строит свой пользовательский интерфейс и модель функционирования на
языке Python.
Универсальная природа языка обеспечивает возможность его
применения в самых разных областях. Фактически с определенной долей
уверенности можно утверждать, что Python так или иначе используется
практически каждой достаточно крупной организацией, занимающейся
разработкой программного обеспечения, – как для решения краткосрочных
тактических задач, так и для разработки долгосрочных стратегических
проектов.
7
Философия языка
Разработчики языка Python придерживаются определённой
философии программирования, называемой «The Zen of Python» («Дзен
Питона). Её текст выдаётся интерпретатором Python по команде import this
(работает один раз за сессию). Автором этой философии считается Тим
Петерс (Tim Peters).
Текст философии:
Красивое лучше, чем уродливое.
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное.
Плоское лучше, чем вложенное.
Разреженное лучше, чем плотное.
Читаемость имеет значение.
Особые случаи не настолько особые, чтобы нарушать правила.
При этом практичность важнее безупречности.
Ошибки никогда не должны замалчиваться.
Если не замалчиваются явно.
Встретив двусмысленность, отбрось искушение угадать.
Должен существовать один — и, желательно, только один — очевидный
способ сделать это.
Хотя он поначалу может быть и не очевиден, если вы не голландец.
Сейчас лучше, чем никогда.
Хотя никогда зачастую лучше, чем прямо сейчас.
Если реализацию сложно объяснить — идея плоха.
Если реализацию легко объяснить — идея, возможно, хороша.
Пространства имён — отличная вещь! Давайте будем делать их больше!
8
Достоинства языка Python
1. Он объектно-ориентированный
Python изначально является объектно-ориентированным языком
программирования. ООП делает этот язык идеальным инструментом
поддержки сценариев для объектно-ориентированных языков, таких как C++
и Java. Например, при наличии соответствующего связующего программного
кода, программы на языке Python могут использовать механизм наследования
от классов, реализованных на C++, Java и C#.
Как бы то ни было, но ООП не является обязательным в Python.
2. Он свободный
Python может использоваться и распространяться совершенно
бесплатно. Как и в случае с другими открытыми программными продуктами,
такими как Linux и Apache, вы сможете получить в Интернете полные
исходные тексты реализации Python. Нет никаких ограничений на его
копирование, встраивание в свои системы или распространение в составе
ваших продуктов. Фактически вы сможете даже продавать исходные тексты
Python, если появится такое желание.
3. Он переносим
Стандартная реализация языка Python написана на
переносимом ANSI C, благодаря чему он компилируется и
работает практически на всех основных платформах.
Например, программы на языке Python могут выполняться на
самом широком спектре устройств, начиная от наладонных
компьютеров (PDA) и заканчивая суперкомпьютерами.
4. Он мощный
С точки зрения функциональных возможностей Python можно назвать
гибридом. Его инструментальные средства укладываются в диапазон между
традиционными языками сценариев (такими как Tcl, Scheme и Perl) и
языками разработки программных систем (такими как C, C++ и Java). Python
обеспечивает простоту и непринужденность языка сценариев и мощь,
которую обычно можно найти в компилирующих языках. Превышая
возможности других языков сценариев, такая комбинация делает Python
удобным средством разработки крупномасштабных проектов.
5. Он соединяемый
Программы на языке Python с легкостью могут
«склеиваться» с компонентами, написанными на других
языках программирования. Из этого следует, что вы можете
расширять возможности программ на языке Python и
использовать программный код на языке Python в других
языковых средах и системах.
6. Он прост в изучении
9
Язык Python очень легко запоминается. В дей-
ствительности вы сможете писать на языке Python более или
менее значимые программы уже через несколько дней.
Сегодня многие системы исходят из того, что конечные
пользователи могут быстро изучить Python в достаточной
степени, чтобы самостоятельно создать свой собственный
программный код настройки системы при незначительной
поддержке со стороны разработчика. И хотя в Python
имеются сложные инструменты программирования, основа
языка по-прежнему остается простой для изучения как
начинающими, так и опытными программистами.
10
Недостатки языка Python
1. Скорость
2. Динамическая типизация
11
Основные типы объектов языка
1.Числа
345
6.0
1267650600228229401496703205376
2. Списки
>>> a = [5,10,15,20,25,30,35,40]
12
>>> print("a[2] =", a[2])
a[2] = 15
>>> a = [1,2,3]
>>> a[2] = 4
>>> a
[1, 2, 4]
3. Кортежи
t[1] = program
13
4. Строки
5. Множества
a = {1, 2, 3, 4, 5}
>>> print(type(a))
<class 'set'>
>>> a = {1,2,2,3,3,3}
>>> a
{1, 2, 3}
>>> a = {1,2,3}
14
>>> a[1]
15
Циклы while и for
1. while
В программировании на Python циклы создаются с помощью
ключевого слова while. После него следует проверочное выражение, а затем
символ двоеточия. Ниже должны идти инструкции, выполняемые при
успешной проверке выражения. Каждая строка обязана иметь один и тот же
отступ от строки с ключевым словом while. Этот блок должен включать в
каком-либо месте инструкцию, изменяющую значение проверочного
выражения на противоположное — иначе цикл будет бесконечным.
При работе в интерактивном режиме отступы блоков кода на языке Python
также должны соблюдаться — как в этом примере, который генерирует
последовательность чисел Фибоначчи с помощью цикла while:
>>> a, b = 0, 1
>>>while b < 100 :
… print(b)
… a, b = b, a + b
…
1
1
2
3
5
8
13
21
34
55
89
>>>
Циклы могут быть вложенными один в другой, при этом на каждой
итерации наружного цикла уже выполнены все итерации внутреннего цикла.
Цикл будет завершаться при неудачной проверке выражения.
2. for
Цикл for уже немного сложнее, чуть менее универсальный, но
выполняется гораздо быстрее цикла while. Этот цикл проходится по любому
итерируемому объекту (например, строке или списку), и во время каждого
прохода выполняет тело цикла.
>>> for i in 'hello world':
... print(i * 2, end='')
...
hheelllloo wwoorrlldd
16
Основы функций
Функция – это средство, позволяющее группировать наборы
инструкций так, что в программе они могут запускаться неоднократно.
Функции могут вычислять некоторый результат и позволять указывать
входные параметры, отличающиеся по своим значениям от вызова к вызову.
Возможность оформления операций в виде функций – это очень удобный
инструмент, который мы можем использовать в самых разных ситуациях.
С принципиальной точки зрения функции устраняют необходимость
вставлять в программу избыточные копии блоков одного и того же
программного кода, так как они могут быть заменены единственной
функцией. Благодаря функциям можно существенно уменьшить трудозатраты
на программирование: если операцию необходимо будет видоизменить,
достаточно будет внести изменения всего в одном месте, а не во многих.
Функции – это самые основные программные структуры в языке
Python, обеспечивающие многократное использование программного кода и
уменьшающие его избыточность.
Это еще и средство проектирования, которое позволяет разбить
сложную систему на достаточно простые и легко управляемые части.
1. Инструкция def
Инструкция def создает объект функции и связывает его с именем. В
общем виде инструкция имеет следующий формат:
def <name>(arg1, arg2,... argN):
<statements>
Как и все составные инструкции в языке Python, инструкция def
состоит из строки заголовка и следующего за ней блока инструкций, обычно
с отступами (или простая инструкция вслед за двоеточием). Блок инструкций
образует тело функции, то есть программный код, который выполняется
интерпретатором всякий раз, когда производится вызов функции.
В строке заголовка инструкции def определяются имя функции, с
которым будет связан объект функции и список из нуля или более
аргументов (иногда их называют параметрами) в круглых скобках. Имена
аргументов в строке заголовка будут связаны с объектами, передаваемыми в
функцию, в точке вызова.
Тело функции часто содержит инструкцию return:
def <name>(arg1, arg2,... argN):
...
return <value>
Инструкция return может располагаться в любом месте в теле функции
– она завершает работу функции и передает результат вызывающей
программе. Инструкция return содержит объектное выражение, которое дает
результат функции. Инструкция return является необязательной – если она
отсутствует, работа функции завершается, когда поток управления достигает
17
конца тела функции. С технической точки зрения, функция без инструкции
return автоматически возвращает объект None, однако это значение обычно
просто игнорируется.
2. Определение
Ниже приводится фрагмент сеанса работы в интерактивной оболочке,
в котором определяется функция с именем times. Эта функция возвращает
результат обработки двух аргументов:
>>> def times(x, y): # Создать функцию и связать ее с именем
... return x * y # Тело, выполняемое при вызове функции
...
Когда интерпретатор достигнет инструкции def и выполнит ее, он
создаст новый объект функции, в который упакует программный код функции
и свяжет объект с именем times
3. Вызов
После выполнения инструкции def появляется возможность вызвать
функцию в программе, добавив круглые скобки после ее имени. В круглых
скобках можно указать один или более аргументов, значения которых будут
присвоены именам, указанным в заголовке функции:
>>> times(2, 4) #Аргументы в круглых скобках
8
Данное выражение передает функции times два аргумента. Передача
аргументов осуществляется за счет выполнения операции присваивания,
таким образом, имени x в заголовке функции присваивается значение 2, а
имени y – значение 4, после чего запускается тело функции. В данном случае
тело функции составляет единственная инструкция return, которая отправляет
обратно результат выражения. В данном примере возвращаемый объект был
выведен интерактивной оболочкой автоматически (как и в большинстве
языков, 2 * 4 в языке Python равно 8), однако если бы результат потребовался
позднее, мы могли бы присвоить его переменной. Например:
>>> x = times(3.14, 4) # Сохранить объект результата
>>> x
12.56
Теперь посмотрим, что произойдет, если функции передать объекты
совершенно разных типов:
>>> times(‘Ni’, 4) #Функции не имеют типа
‘NiNiNiNi’
На этот раз функция выполнила нечто совершенно иное. Вместо двух
чисел в аргументах x и y функции были переданы строка и целое число.
Оператор * может работать как с числами, так и с последовательностями;
поскольку в языке Python не требуется объявлять типы переменных,
аргументов или возвращаемых значений, мы можем использовать функцию
times для умножения чисел и повторения последовательностей. Другими
словами, смысл функции times и тип возвращаемого значения определяется
аргументами, которые ей передаются.
18
Это основная идея языка Python (и, возможно, ключ к использованию
языка).
19
Математические операции
В языке Python существует модуль math, методы которого вы можете
использовать для работы с математическими операциями.
Например, методы math.ceil() и math.floor() позволяют осуществлять
округление значений с плавающей точкой, указанных в качестве параметров
этим методам, до ближайшего целого — math.ceil() округляет вверх,
math.floor() — вниз. Несмотря на то что данное значение имеет нулевую
дробную часть, оно на самом деле имеет тип float, а не int.
Метод math.pow(), принимающий два аргумента, используется для
возведения одного аргумента в степень другого.
Метод math.sqrt(), требующий единственный аргумент, возвращает
квадратный корень из указанной в его скобках величины. Оба этих метода
возвращают числовое значение типа float.
Модули также могут осуществлять вычисление тригонометрических
функций, например math.sin(), math.cosin() и math.tan().
Для того чтобы работать с псевдослучайными числами, вы можете
также импортировать в программу модуль random языка Python.
Метод random.random() генерирует одно число с плавающей точкой от
нуля до 1.0. Возможно, больший интерес будет представлять метод random.
sample(), который генерирует список элементов, случайно выбранных
из последовательности. Этот метод требует два аргумента для указания
последовательности, из которой выбирать, а также размера генерируемого
списка.
В качестве первого аргумента для метода random.sample() можно
использовать функцию range(), которая, как вы помните, возвращает
последовательность чисел.
Таким образом, из этой последовательности метод random.sample()
будет создавать список с неповторяющимися элементами.
Для работы с данным модулем его предварительно нужно
импортировать.
#Возвращает ближайшее целое число большее, чем x.
>>> math.ceil(3.2)
4
#Возвращает абсолютное значение числа.
>>> math.fabs(-7)
7.0
#Вычисляет факториал x.
>>> math.factorial(5)
120
#Возвращает ближайшее целое число меньшее, чем x.
>>> math.floor(3.2)
3
20
#Вычисляет e**x.
>>> math.exp(3)
20.085536923187668
#Вычисляет значение x в степени y.
>>> math.pow(3, 4)
81.0
#Корень квадратный от x.
>>> math.sqrt(25)
5.0
Тригонометрические функции:
math.cos(x)
math.sin(x)
math.tan(x)
math.acos(x)
math.asin(x)
math.atan(x)
21
Заключение
Благодаря простоте и гибкости языка Python, его можно рекомендовать
пользователям (математикам, физикам, экономистам и т.д.) не являющимся
программистами, но использующими вычислительную технику и
программирование в своей работе.
22
Библиографический список
1. Г. Россум "Язык программирования Python"
2. Марк Лутц "Изучаем Python. Четвертое издание."
3. Майк МакГрат "Программирование для начинающих на Python"
4. https://ru.wikipedia.org/wiki/Python
5. https://khashtamov.com/ru/why-python/
6. https://tproger.ru/translations/python-data-types/
7. https://younglinux.info/python/for.php
8. https://devpractice.ru/python-lesson-4-arithmetic-operations/
23