-
Python 0.9
Python 0.9.0 — первая версия языка программирования Python, выпущенная Гвидо ван Россумом в 1991 году.
Некоторые особенности этой версии:
Обработка исключений.
Функции.
Основные типы данных, такие как list, dict, str и другие.
Модульная система, которая позволяла организовывать код в библиотеки многократного использования.
Также в Python 0.9.0 была представлена модульная система, вдохновлённая языком ABC, который в то время реализовывал ван Россум. -
Python 1.0
Первая официальная версия Python была выпущена в январе 1994 года. Она включала в себя основные концепции, которые до сих пор являются основой языка:
Интерпретируемость: Это позволяет разработчикам быстро проверять и изменять код без необходимости компиляции.
Динамическая типизация: Это позволяет разработчикам писать более гибкий и адаптивный код.
Высокоуровневые структуры данных: Встроенные типы данных, такие как списки и словари, упрощают работу с данными. -
Python 1.5
Python 1.5 — версия языка программирования Python. Она включала множество улучшений и новых возможностей. Некоторые из них:
Поддержка исключений.
Регулярные выражения.
Улучшенная работа с файлами. Были добавлены новые функции для работы с файлами.
Расширение стандартной библиотеки. Библиотека включала множество модулей для различных задач.
Начальная поддержка Unicode. -
Python 1.6
Python 1.6 — 'то последняя версия, разработанная в CNRI, и единственная, выпущенная под лицензией с открытым исходным кодом.
Некоторые особенности Python 1.6:
Поддержка Unicode.
Методы строк.
Новый движок регулярных выражений.
Безопасность удаления объектов. У
Унификация long/int.
Новый вариант форматирования строк.
Поддержка XML, HTTP1.1, curses, SSL.
Улучшенная среда разработки. После выпуска Python 1.6 появилась Python 1.6.1 с исправлением мелких ошибок и новой лицензией. -
Python 2.0
Python 2 — версия языка программирования Python.
Некоторые особенности Python 2:
Реализация PEP — технической спецификации, которая предоставляет информацию членам сообщества Python.
Множество новых функций: циклический сборщик мусора для автоматизации управления памятью, расширенная поддержка Unicode для стандартизации символов, списковая сборка и другие.
Python 2 был популярен и широко использовался разработчиками и компаниями. Однако 1 января 2020 года поддержка Python 2 прекратилась -
Python 2.1
Python 2.1 — первая версия, полностью разработанная на основе модели PEP.
Некоторые изменения, которые появились в Python 2.1:
Статически вложенные пространства имён. Э
Механизм автоматического определения поддерживаемых модулей. D
Оператор import для имитации чувствительности к регистру.
Модуль warnings. Он предоставляет функции для выдачи предупреждений и фильтрации тех из них, которые не нужно выводить.
Новый метод для словарей — popitem(). -
Python 2.2
Главное нововведение в этой версии — объединение базовых типов Python и классов, создаваемых пользователе. Это сделало Python полностью объектно-ориентированным языком.
Некоторые другие особенности Python 2.2:
Возможность определять статические и классовые методы в дополнение к методам экземпляра. Автоматический вызов методов при доступе к атрибуту экземпляра. Перегрузка операторов деления. Поддержка аргументов командной строки. Поддержка больших файлов на платформах Win32 и Win64. -
Python 2.3
Некоторые особенности Python 2.3:
Доработка функций, добавленных в Python 2.2. Добавление нескольких новых встроенных функций, таких как sum() и enumerate(). Использование оператора in для поиска по подстроке. Введение типов данных, таких как Boolean, set, heap и дата/время.
Возможность импорта модулей из архивов формата ZIP.
Поддержка метаданных для каталога Python.
Обновлённая версия IDLE.
Поддержка интернационализированных имён доменов. Python 2.3 может работать на 30% быстрее, чем Python 2.2 -
Python 2.4
Python 2.4 — релиз среднего размера, в котором меньше изменений, чем в радикальной версии Python 2.2, но больше возможностей, чем в консервативной версии 2.3.
Некоторые особенности Python 2.4:
Генераторные выражения.
Унификация длинных целых и целых чисел.
Встроенные объекты множеств.
Новый модуль для работы с процессами — subprocess.
Десятичный тип данных.
Улучшения в импорте модулей.
В результате оптимизаций Python 2.4 работает на 5% быстрее, чем Python 2.3, и на 35% быстрее, чем Python 2.2 -
Python 2.5
Некоторые особенности версии:
Добавление новых модулей: ElementTree для обработки XML, модуль базы данных SQLite и модуль ctypes для вызова функций C
Введение условных выражений с новым синтаксисом.
Возможность передавать значения в генераторы.
Появление встроенных функций any() и all()
Изменение кодировки по умолчанию для модулей: ASCII
Оптимизация встроенных типов set и frozenset
Улучшение скорости выполнения некоторых операций в Юникоде
Ускорение работы функции long() для длиннозначных строк -
Python 2.6
Python 2.6 включал некоторые возможности Python 3.0, в том числе функцию print(). Также в этой версии был реализован режим «предупреждения», в котором подсвечивалась функциональность, удалённая в Python 3.0. Некоторые другие особенности Python 2.6:
введение нового типа «неизменяемые байты» и типа «изменяемый буфер» для представления бинарных данных;
новая подсистема ввода-вывода (модуль io) с отдельными представлениями для бинарных и текстовых данных;
абстрактные классы и абстрактные методы. -
Python 3.0
Основной целью этой версии было устранение недостатков, читаемость кода
Некоторые изменения, внесённые в Python 3.0:
Полный переход на Unicode для строк
Введение нового типа «неизменяемые байты» и типа «изменяемый буфер»
Новая подсистема ввода-вывода (модуль io)
Абстрактные классы, абстрактные методы.
Иерархия типов для чисел
Выражения для словарей и множеств
Реорганизация стандартной библиотеки
Python 3.0 был несовместим с предыдущими версиями, что вызвало некоторое сопротивление в сообществе. -
Python 3.1
Некоторые особенности Python 3.1:
Реализован класс collections.OrderedDict
Библиотека ввода/вывода переписана на языке С.
Добавлена эталонная реализация оператора import
Добавлена поддержка строк в фиксированной кодировке
Появились новые модули: tkinter.ttk
Добавлен класс collections.Counter
Появился новый механизм оптимизации циклов "--with-computed-gotos"
В 2–4 раза увеличена скорость декодирования строк UTF-8, UTF-16 и LATIN-1.
Для json-модуля добавлено расширение, написанное на С -
Python 2.7
Python 2.7 включала функциональность Python 3.1. Некоторые особенности Python 2.7:
Преобразования из длинных целых чисел и обычных целых чисел в числа с плавающей точкой.
целочисленное деление более точно округляет результаты;
модули pickle и cPickle автоматически интернируют строки, используемые для имён атрибутов.
конструктор для Decimal принимает числа с плавающей точкой и неевропейские символы Unicode, такие как арабско-индийские цифры. 4
Поддержка Python 2.7 закончилась 1 января 2020 года -
Python 3.2
Основные усилия при подготовке версии были направлены на увеличение стабильности, расширение возможностей стандартной библиотеки и упрощение процесса портирования скриптов
Некоторые улучшения, добавленные в Python 3.2:
Расширение возможностей модуля unittest.
Поддержка привязанных к номеру версии Python ABI динамических библиотек.
В модуле shutil добавлена поддержка работы с архивами в формате ZIP, TAR, GZIP и BZIP.
Значительно изменён модуль configparser -
Python 3.3
Поддержка виртуальных окружений.
Поддержка синтаксиса yield from выражение
Новые модули: faulthandler ipaddress
Переработанная иерархия исключений для системных вызовов (os) и ввода/вывода (io).
Улучшение поддержки Unicode.
Возможность скрытия контекста исключений.
Реализация расширенных и независимых от платформы часов в модуле «time».
Добавлен класс collections.ChainMap
По умолчанию включён режим рандомизации хэшей -
Python 3.4
Некоторые нововведения Python 3.4:
Модуль «pathlib»
Улучшена семантика для финализации объектов
Появился новый C API для создания собственных методов распределения памяти.
Появился новый модуль «statistics»
В дистрибутив добавлен установщик менеджера пакетов pip.
Добавлен модуль «tracemalloc»
Реализован новый улучшенный протокол Pickle version 4
Добавлен модуль «asyncio», представляющий из себя фреймворк для асинхронного ввода/вывода. -
Python 3.5
Некоторые особенности Python 3.5:
Оптимизация скорости работы приложений
Поддержка асинхронного программирования.
Улучшенная обработка ошибок. Это помогает быстро выявлять и исправлять ошибки
Новый синтаксис. Например, использование оператора «@» для умножения матриц. 21
Расширение операторов распаковки. Теперь можно использовать «» и «*» для произвольного числа распаковок при вызове функции или при манипуляциях с множествами, кортежами, списками и словарями
Новый модуль zipapp -
Python 3.6
Некоторые нововведения версии:
Возможность использования символов подчёркивания для улучшения читаемости чисел
Возможность определения асинхронных генераторов.
Переработанная реализация типа dict
Добавлен протокол для определения путей в файловой системе в виде отдельных объектов pathlib
В состав стандартной библиотеки включён новый модуль secrets, предоставляющий средства для генерации криптографически надёжных псевдослучайных чисел, пригодных для формирования различных ключей и токенов -
Python 3.7
Новые возможности синтаксиса: отложенное вычисление аннотаций типов (PEP 563).
Новые модули библиотеки: contextvars, dataclasses, importlib.resources
Новые встроенные функции: breakpoint()
Улучшения модели данных Python
Изменения в стандартной библиотеке
Модуль time получил поддержку функций с разрешением в наносекунды.
Повышение производительности: возросла скорость вызова методов (до 20% в некоторых случаях), время старта интерпретатора уменьшилось на 10–30% -
Python 3.8
Некоторые особенности Python 3.8:
Оператор Walrus (:=).
Поддержка позиционных аргументов.
Поддержка f-строк.
Обратимые словари.
Новые функции в стандартной библиотеке: math.prod()
Python 3.8 добавляет новые предупреждения, которые могут помочь во время кодирования и отладки. -
Python 3.9
Некоторые особенности Python 3.9:
Новые операторы для словарей. В встроенном классе dict появились операторы слияния «|» и обновления «|=»
Новые методы для строк. Добавлены методы удаления начала (префикса) и конца (суффикса) строки — removeprefix() и removesuffix().
Поддержка подсказок типов.
Новые модули: Zoneinfo, graphlib для сортировки графов
Проведена оптимизация производительности встроенных типов
Устранена утечка памяти при повторной инициализации интерпретатора Python в одном процессе -
Python 3.10
Некоторые особенности этой версии:
Структурное сопоставление шаблонов.
Улучшенная проверка типов.
Улучшение менеджеров контекста.
Улучшенные сообщения об ошибках.
Улучшение производительности.
Новые возможности в стандартной библиотеке. Например, функция zip() теперь имеет необязательный флаг «strict», при указании которого проводится проверка на одинаковую длину перебираемых аргументов. -
Python 3.11
В этой версии разработчики уделили внимание повышению производительности.
Некоторые особенности Python 3.11:
Ускорение запуска. Интерпретатор CPython запускается на 10–15% быстрее, чем в версии 3.10.
Оптимизация стековых кадров.
Оптимизация встроенных вызовов функций.
Специализированный адаптивный интерпретатор.
Более подробная трассировка вызовов.
Расширение возможностей аннотации типов.
Поддержка формата TOML.
Встроенная поддержка WebAssembly. -
Python 3.12
Некоторые нововведения версии:
Расширенная гибкость разбора f-строк.
Повышенная информативность сообщений об ошибках.
Поддержка подсистемы ядра Linux perf в интерпретаторе.
Более компактный синтаксис аннотирования типов для обобщённых классов и функций.
Поддержка Windows в модуле os.
Защита от переполнения стека
Удаление неактуальных методов и функций языка.
В версии 3.12 удалось добиться прироста производительности в размере 5%.