Python Выполнил: Железников Роман студент 1 курса БМБШ ИГУ Руководитель: Доктор физико-математических наук, профессор Курганская Галина Сергеевна
История языков программирования Первые программы заключались в установке ключевых переключателей на передней панели вычислительного устройства. Очевидно, таким способом можно было составить только небольшие программы. С развитием компьютерной техники появился машинный язык, с помощью которого программист мог создавать команды, оперируя с ячейками памяти, полностью используя ресурсы машины
Примеры первых языков программирования Фортран(FORmula TRANslator) Алгол Паскаль СИ
Что же такое Python? Python - высокоуровневый язык программирования общего назначения с акцентом на производительность разработчика и читаемость кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций. Основные архитектурные черты динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Код в Питоне организовывается в функции и классы, которые могут объединяться в модули (которые в свою очередь могут быть объединены в пакеты).
Основные операторы использующиеся в Python условный оператор if (если). Альтернативный блок после else (иначе). Если условий и альтернатив несколько, можно использовать elif (сокр. от else if). операторы цикла while (пока) и for (для). Внутри цикла возможно применение break и continue для прерывания цикла и перехода сразу к следующей итерации соответственно. оператор определения класса class. оператор определения функции, метода или генератора def. Внутри возможно применение return (возврат) для возврата из функции или метода, а в случае генератора yield (давать). оператор обработки исключений try except else или try finally (начиная с версии 2.5, можно использовать finally, except и else в одном блоке).
Синтаксическая особенность Python Одной из интересных синтаксических особенностей языка является выделение блоков кода с помощью отступов (пробелов или табуляций), поэтому в Питоне отсутствуют операторные скобки begin/end, как в языке Паскаль, или фигурные скобки, как в Си. Такой «трюк» позволяет сократить количество строк и символов в программе и приучает к «хорошему» стилю программирования. С другой стороны, поведение и даже корректность программы может зависеть от начальных пробелов в тексте. Некоторые критики языка считают такое поведение неудобным.
Возможности Python Интерпретатор Питона имеет интерактивный режим работы, при котором введённые с клавиатуры операторы сразу же выполняются, а результат выводится на экран. Этот режим интересен не только новичкам, но и опытным программистам, которые могут протестировать в интерактивном режиме любой участок кода, прежде чем использовать его в основной программе, или просто использовать как калькулятор с большим набором функций.
Функциональное программирование на Python функция является объектом функции высших порядков рекурсия развитая обработка списков (списковые выражения, операции над последовательностями, итераторы) аналог замыканий частичное применение функции возможность реализации других средств на самом языке
Недостатки Python Низкое быстродействие Отсутствие статической типизации Невозможность модификации встроенных классов Глобальная блокировка интерпретатора
Низкое быстродействие Классический Питон, как и многие другие интерпретируемые языки имеют общий недостаток сравнительно невысокую скорость выполнения программ. Однако, в случае с Python этот недостаток компенсируется уменьшением времени разработки программы. В среднем, программа, написанная на Python, в 2-4 раза компактнее, чем её аналог на C++ или Java. Сохранение байт-кода позволяет интерпретатору не тратить лишнее время на перекомпиляцию кода модулей при каждом запуске, в отличие, например, от языка Perl. Кроме того, существует специальная JIT-библиотека psyco, позволяющая ускорить выполнение программ (однако приводящая к увеличению потребления оперативной памяти). Эффективность psyco сильно зависит от архитектуры программы.
Отсутствие статической типизации Статическая типизация уменьшает количество ошибок в коде, поскольку значительное число потенциальных ошибок может быть отловлено интерпретатором сразу же при компиляции в байт-код. Тем не менее есть мнение, что отсутствие статической типизации является не столько недостатком интерпретатора, сколько выбором дизайнера языка. Дело в том, что в Python принята так называемая «Утиная типизация». В силу этого типы передаваемых значений недоступны на этапе компиляции, и ошибки вроде AttributeError могут возникать во время исполнения. Отсутствие статической типизации также является одной из основных причин низкого быстродействия.
Невозможность модификации классов В Python отсутствует возможность модифицировать встроенные классы, такие, как int, str, float, list и другие, что, однако, позволяет Python потреблять меньше оперативной памяти и быстрее работать. Ещё одной причиной введения такого ограничения является необходимость согласования с модулями расширения. Многие модули (в целях оптимизации быстродействия) преобразуют Python-объекты элементарных типов к соответствующим Си-типам вместо манипуляций с ними посредством Си-API.
Глобальная блокировка интерпретатора GIL - При своей работе основной интерпретатор Python постоянно использует большое количество потоково-небезопасных данных. В основном это словари, в которых хранятся атрибуты объектов и обращения к внешнему коду (написанному на С и т.п.). Во избежание разрушения этих данных при совместной модификации из разных потоков, перед началом исполнения нескольких инструкций (по умолчанию 100) поток интерпретатора захватывает GIL, а по окончании освобождает. Вследствие этого, в каждый момент времени в одном процессе интерпретатора Python может исполняться только один поток Python кода, даже если в компьютере имеется несколько процессоров или процессорных ядер.
Примеры проектов реализованных на Python. Компании использующие Python. Проекты реализованные на Python: BitTorrent – первый клиент-сервер для популярного файлообменных сетей; Civilization IV – популярная стратегическая игра, в которой Python используется как скриптовой язык Компании использующие Python: Dream Works Nokia Firaxis Games