Python, один из самых популярных языков в мире, претерпел множество итераций, чтобы соответствовать меняющимся потребностям разработчиков и тенденциям развития технологий.
То, что начиналось как сторонний проект одного человека, теперь стало самым быстрым растущий язык в мире. Python теперь является предпочтительным инструментом для следующего поколения решений на основе данных и ИИ.
Сегодня мы рассмотрим изменения в различных версиях Python от предстартовой до 3.9 и рассмотрим шаги это способствовало росту популярности Python.
Вот что мы рассмотрим сегодня:
- Почему Python сделано?
- Python 1
- Python 2
- Python 3
- Какое будущее у Python?
- Освойте Python вдвое быстрее
- Почему был создан Python ?
- Python 1
- Python 2
- Unicode
- Понимание списков
- Циклы сборки мусора
- Расширенное присвоение
- Продолжайте изучать Python
- Пройдите собеседование по программированию на Python
- Python 3
- Незначительные изменения в Python 3.0
- Print Function
- raw_input на input
- Объединение str и Unicode
- Целочисленное деление
- Основные изменения каждой версии Python 3
- Какое будущее у Python
- Читать далее о Python
Освойте Python вдвое быстрее
Станьте разработчиком Python быстро с помощью практических текстовых уроков.
Пройти собеседование по программированию на Python
Почему был создан Python ?
Python был создан голландским программистом Гвидо Ван Россумом в конце 1980-х. В то время он работал над распределенной системой под названием Amoeba в CWI, исследовательском центре компьютерных наук в Нидерландах. C был основным языком, который использовали он и другие исследователи.
Ван Россум считал, что программирование на C ** занимает слишком много времени * 8. В свободное время он начал создавать новый язык, который позволил бы ему работать быстрее. Он и не подозревал, что этот побочный проект со временем станет одним из самых популярных и широко распространенных языков программирования в мире.
Python всегда привлекал своей простотой и уникальной смесью C и сценария bash. возможности. Ван Россум в значительной степени использовал язык программирования ABC , но также включал инструменты для динамических типов и императивного программирования.
История : Когда Ван Россум создавал Python, он читал сценарий популярного комедийного сериала BBC под названием «Летающий цирк Монти Пайтона». Поэтому он выбрал название Python для своего нового языка, потому что он был уникальным и загадочным.
Python начал постепенно набирать популярность после его выпуска с открытым исходным кодом на alt.sources. К 1990-м годам Python начал побеждать другие подобные языки, такие как Perl и Ruby, благодаря поддержке технических компаний NIST и Microsoft.
Основные преимущества любой версии Python:
- Читаемость , похожий на английский синтаксис позволяет сразу анализировать значение.
- Интерпретируемый язык , легче отлаживать.
- Динамически типизированный , Python определяет типы при выполнении. Не нужно объявлять переменные и типы данных.
- Open-Source , Python можно использовать бесплатно и быстро развивается благодаря участию сообщества.
В целом, Python предназначен для самостоятельной работы больше, чем большинство языков, чтобы разработчик мог сосредоточиться на своей работе.
Python 1
Python 1, выпущенный в 1994 году, с новыми функциями для функционального программирования, включая лямбда, отображение, фильтр и сокращение. Он также включает функции из Python 0.9, включая классы с наследованием, обработку исключений, функции и основные типы данных list
, dict
, str
.
В Python 1.4 появился следующий набор функций, таких как аргументы ключевых слов в стиле Modula-3 и поддержка операций со сложными числами.
Другая версия 1 обновления включали оптимизацию, фоновые изменения и обновления документации/лицензий.
В этот период Perl был самым популярным языком сценариев, а Python был слишком незрелым, чтобы его можно было использовать в широком масштабе. Поскольку все больше разработчиков искали альтернативы Perl, Python казался лучшим выбором, поскольку он имитирует многие функции Perl. В мире объектно-ориентированного программирования Java находилась на подъеме в эпоху Visual Basic и C/C ++.
Это ознаменовало переход к принятию языков, отличных от C/ C ++ и открыл дверь для развития Python.
Нравится статья? Прокрутите вниз, чтобы подписаться на нашу бесплатную новостную рассылку раз в два месяца.
Python 2
Python 2 запущен в 2000 году с большими изменениями в хранении исходного кода. Он представил множество желаемых функций, таких как поддержка Unicode, понимание списков и сборка мусора. Чуть позже Python 2.2 представил объединение типов и классов в рамках одной иерархии, что позволило Python быть действительно объектно-ориентированным.
Примерно в это время многие программисты использовали Python как альтернативный язык сценариев . Поскольку Java доминировала в мире приложений корпоративного размера, Python использовался в небольших, нишевых приложениях.
Даже разработчики Java начали использовать Python для увеличения скорости кодирования благодаря его совместимости.
Unicode
Python 2.0 представил строковый тип данных Unicode, который выделял 16-битные числа для представления символов вместо стандартных 8-битных строк.. Это добавляет 65 000 дополнительных поддерживаемых символов из языков нелатинского алфавита, таких как русский, китайский или арабский. Также добавлена поддержка небуквенных символов, таких как эмодзи.
Синтаксис строк Unicode:
u`unicode string`
Вы также можете использовать Unicode для кодирования ваших собственных строк в уникальное обозначение. Вызов этого уникального обозначения позже в вашем коде позволяет вам ссылаться на ту же закодированную строку без использования дополнительного места или сохранения ее в переменной.
Следующий код записывает строку Unicode в файл и кодирует ее как UTF-8
:
import codecsunistr = u ' u0660 u2000ab ...' (UTF8_encode, UTF8_decode, UTF8_streamreader, UTF8_streamwriter) = кодеки. lookup ('UTF-8') output = UTF8_streamwriter (open ('/tmp/output', 'wb')) output.write (unistr) output.close ()
Затем вы можете прочитать этот закодированный файл позже, используя:
input = UTF8_streamreader (open ('/tmp/output', 'rb')) print repr (input.read ( )) input.close ()
Понимание списков
Понимание списков используется для создания новых списков из других итераций. Компоненты списков принимают и возвращают список, позволяя обрезать список по определенным критериям или создавать новый список с новыми управляемыми элементами.
Синтаксис для понимания списков:
new_list = [выражение для_loop_one_or_more условий]
Ниже показано, как можно использовать составные части списка для возврата нового списка только с элементами, которые присутствуют в оба переданных списка.
list_a = [1, 2, 3, 4] list_b = [2, 3, 4, 5] common_num = [a для a в list_a для b в list_b, если a == b] print (common_num) # Вывод: [2, 3, 4]
Циклы сборки мусора
Python 2.0 пересматривает систему сбора мусора, переключившись с системы на основе счетчиков на систему на основе циклов .
В старой системе каждый объект будет содержат счетчик, который записывает, сколько других объектов указывают на него. Затем объект автоматически удалялся, когда счетчик достигал нуля. Однако он не удалял объекты, на которые указали, но которые были недоступны, что приводило к утечке памяти.
Python 2.0 исправляет это периодическими циклами, которые вызывают сборщик мусора для удаления недоступных объектов. Циклы используют дополнительные накладные расходы, но снижают риск утечки памяти. С тех пор накладные расходы на циклы удаления были сокращены благодаря оптимизации.
Расширенное присвоение
Python 2.0 также добавляет поддержку операторов расширенного присваивания, которые выполняют операция над выбранной переменной и возврат переменной. Например, a + = 1
добавляет 1 к значению a
. Это сокращенная версия инструкции = a + 1
.
Полный список поддерживаемых операторов присваивания: + =
, - =
, * =
, /=
, % =
, ** =
, & =
, | =
, ^ =
, >> =
и .
Эти операторы особенно полезны при использовании в сочетании с циклическими структурами.
Версия: | Дата выпуска: | Основные изменения: |
---|---|---|
Python 2.1 | октябрь 2001 г. | Добавлена поддержка вложенных областей видимости, чтобы они больше походили на другие языки со статической областью видимости |
Python 2.2 | декабрь 2001 г. | Объединение типов и классов в одну иерархию Python, чтобы сделать Python более объектно-ориентированным. Также добавлены процедуры генератора, которые управляют поведением циклов. |
Python 2.4 | март 2005 г. | Добавлены выражения генератора для функции итератора, декораторов функций и десятичный тип данных |
Python 2.5 | сентябрь 2006 г. | Добавлен with , который включает код в диспетчер контекста. |
Python 2.6 | октябрь 2006 г. | Добавлены все функции обратной совместимости 3.0, включая typeError , bin () и _complex_ () . Перешел с отслеживания проблем SourceForge на Roundup. Также оптимизирован оператор with |
Python 2.7 | июнь 2009 г. | — мелкие исправления ошибок и оптимизации. Прекращена поддержка Python 2. |
Продолжайте изучать Python
Практикуйте передовые методы Python при подготовке к собеседованию по кодированию. Учебные программы Educative позволяют получить доступ ко всему нашему лучшему контенту и практическим задачам из всей нашей библиотеки курсов.
Пройдите собеседование по программированию на Python
б>
Python 3
Python 3.0 — это самое большое изменение в языке претерпел. Основная задача обновления заключалась в устранении фундаментальных недостатков дизайна языка путем удаления повторяющихся модулей и конструкций..
При разработке Python 3 использовались те же принципы, что и в предыдущих версиях, но при этом добавлено, что для каждой задачи «должен быть один — а желательно только один — очевидный способ сделать это».
Удаление множества повторяющихся инструментов, к сожалению, означало, что весь предыдущий код Python 2 был несовместим с Python 3.0. Некоторые из наиболее заметных изменений заключаются в том, что print
теперь является встроенной функцией, удаление Python 2 input
, унификация str
и unicode
, а также изменения в целочисленном делении.
К счастью, команда Python создала инструмент под названием 2to3
, который рассмотрит старую программу Python 2 и автоматически преобразует большую часть измененного синтаксиса в Python 3.
Выпуск Python 3.0 привлек внимание разработчиков и привлек внимание научного сообщества, особенно в таких областях, как нейробиология. После того, как библиотека NumPy была создана на Python, Python стал конкурентом R и Matlab, поставив Python на пьедестал как предпочтительный язык для машинного обучения и науки о данных.
С появлением больших данных в начале 2000-х годов, вызванным финансовым кризисом 2008 года, возросла потребность в инструментах автоматизации данных. Многие компании приняли Python за его простоту и мощные библиотеки. Вскоре после этого он стал предпочтительным языком для управления данными социальных сетей.
Примерно в это же время для удовлетворения этого спроса были разработаны Pandas, Scikit-learn и Matplotlib.
В период с 2012 по 2015 год крупные технологические компании, такие как Facebook, Google и Netflix, вскоре расширили сферу науки о данных и машинного обучения, используя Python в качестве основного языка и R для визуализации данных. Эти компании разработали более известные инструменты Python, такие как TensorFlow и Seaborn, что сделало Python выбором №1 для специалистов по данным.
Примечание: Примерно в 2014 году Python стал одним из основных языков программирования для новичков . Его даже приняли университеты для студентов, изучающих CS, и лагеря программистов по всему миру.
Незначительные изменения в Python 3.0
-
reduce ()
:reduce ()
перемещен из встроенных функций в функцииmap ()
иfilter ()
остаются встроенными. - Удаление старой функции : классы старого стиля, строковые исключения и неявный относительный импорт больше не поддерживаются.
- Обработка исключений : теперь для исключений требуется
as
ключевое слово,exec as * var *
является стандартным по сравнению сexec, * var *
. -
with
statement :with
теперь встроен, и его больше не нужно импортировать из__ future __
. - range :
xrange ()
из Python 2 был заменен надиапазон ()
. Исходное поведениеrange ()
больше не доступно.
Print
Function
В Python 2 print
был оператором, который нужно было импортировать из __ future__
. В Python 3 он был изменен на встроенную функцию и больше не требует импорта. Поскольку теперь это функция, вы должны заключить все напечатанные аргументы в круглые скобки, print ("напечатано")
.
Например:
Старое: print "Ответ", 2 * 2 Новое: print ("Ответ", 2 * 2)
Одна заметная сторона в результате вы больше не можете использовать пустой оператор print
для создания новой строки.
Old: print # Печатает новую строку : print () # Вы должны вызвать функцию!
Кроме того, функция print ()
не поддерживает функцию «мягкого пространства», которая внутренне отслеживает состояние фраз, напечатанных вместе. В Python 3 две напечатанные фразы автоматически обрабатываются пробелом.
## Py2print "A n", "B" "A nB n" ## Py3print ("A n", "B") "A n B n"
Помимо этих небольших изменений, новый print ()
работает идентично. Эти изменения настолько просты, что вы можете автоматически преобразовать все старые операторы печати в функции с помощью инструмента 2to3
.
raw_input
на input
Версия input
Python 2.0 была удалена, а старый raw_input
был переименован в input
. Это означает, что input
теперь всегда возвращается как строка, а не как выражение.
Цель изменения — устранить путаницу вокруг поведения два одинаковых ввода
и вместо этого предпочитают более распространенное использование. Если вы хотите использовать старую функциональность, вы можете вместо этого использовать eval (input ())
.
Объединение str
и Unicode
В Python 3 все текстовое содержимое, такое как строки, по умолчанию является Unicode. Целью здесь было уменьшить количество ошибок, вызванных смешиванием закодированных типов данных и типов данных Unicode в одной программе.
Вместо этого вы можете кодировать строки в байты, используя новые неизменяемые байты
тип, созданный с помощью метода bytes ()
. Также существует изменяемая версия, созданная с помощью метода bytearray ()
.
Метод bytes ()
принимает три необязательных параметра :
-
source
: источник для инициализации массива байтов. -
кодировка
: если источником является строка, кодировка строки. -
errors
: если источником является строка, действие, которое нужно предпринять, когда преобразование кодировки не удается.
Преимущество использования байтов заключается в том, что они содержат разные формы данных, в то время как Unicode может представлять только текстовые данные.
Например, вы можете преобразовать весь список в байты, используя bytes ( )
:
rList = [1, 2, 3, 4, 5] arr = bytes (rList) print (arr)//Вывод: b ' x01 x02 x03 x04 x05 '
Целочисленное деление
В Python 3 операции деления, которые приводят к десятичным дробям, возвращают число с плавающей точкой, а не усеченное целое.
В Python 2 результатом 5/2
будет 2
, потому что десятичное число автоматически обрезается до целого числа. Теперь 5/2
равно 2,5
, где результат конвертируется в число с плавающей запятой для представления правильного ответа. Вы все еще можете добиться усечения, если используете оператор //
, 5//2
.
Желание здесь заключается в устранении непредвиденного поведения из-за непреднамеренного усечения.
Основные изменения каждой версии Python 3
Версия: | Дата выпуска: | Основные изменения: |
---|---|---|
Python 3.1 | июнь 2009 г. | Добавлена поддержка упорядоченных словарей, позволяющих конфигурировать файлы должны быть прочитаны, изменены и затем записаны обратно в их исходном порядке. |
Python 3.2 | февраль 2011 г. | Добавляет возможность ограничить модули определенными API, которые останутся стабильными, несмотря на обновления. Добавлен модуль argparse для замены optparse и библиотеки futures для параллельного программирования. |
Python 3.3 | Сентябрь 2012 г. | Добавлено выражение yield from для делегирования генератора. Добавлена поддержка явного объявления Unicode для облегчения перехода с Py2 на Py3. Упрощенный отлов ошибок за счет удаления требования указывать конкретный тип ошибки. Теперь все ошибки можно отловить с помощью OSError . |
Python 3.4 | март 2014 г. | Добавлен асинхронный модуль, который включает поддержка реализаций цикла событий. |
Python 3.5 | сентябрь 2015 г. | Дополнительная поддержка асинхронного программирование путем добавления ожидающих объектов, функций сопрограмм, асинхронной итерации и асинхронных менеджеров контекста. |
Python 3.6 | декабрь 2016 г. | Стабилизированный модуль asyncho с дополнительными функциями, синтаксисом, оптимизациями и исправлениями ошибок. Добавлена поддержка асинхронных генераторов и сжатия. Добавлены f-строки , которые включают выражения, вычисляемые во время выполнения. |
Python 3.7 | июнь 2018 г. | — Добавлено async и await как зарезервированные ключевые слова. Также добавлен метод breakpoint () , который переводит вас в отладчик на сайте вызова. Оценка аннотаций теперь может быть отложена до времени выполнения, а не до определения, чтобы избежать ошибок области. |
Python 3.8 | октябрь 2019 | — Добавлен «оператор моржа» ( : = ), который позволяет присваивать значение переменным как часть более крупного выражения. Включены только позиционные аргументы, позволяющие указать, что параметр должен быть отмечен по позиции, а не по ключевому слову. Добавлена поддержка спецификатора f-строки = , чтобы обеспечить больший контроль над представлением f-строки. |
Python 3.9 | октябрь 2020 г. | Слияние ( | ) и обновление ( | = ) добавлено в библиотеку dict для дополнения dict.update () метод. Добавлены str.removeprefix (префикс) и str.removesuffix (суффикс) для простого удаления ненужных разделов строки. |
Шпаргалку по Python 3 для печати см. в нашем Руководство по Python 3
Какое будущее у Python
В 2019 году Python был объявлен самым быстрорастущим языком программирования в мире. в мире, и теперь в нем есть одно из крупнейших сообществ программистов . Ожидается, что этот рост продолжится после карантина 2020 года, который вызвал всплеск ИИ, технологий автоматизации и отслеживания данных.
Ожидается, что всплеск роста сохранится после пандемии COVID-19, с большим количеством предприятий, чем когда-либо прежде, осознающих преимущества ИИ и науки о данных. Часто бытует мнение, что компании не могут рискнуть принять неправильное бизнес-решение в эти нестабильные времена.
Это, естественно, побуждает многих вкладывать значительные средства в прогнозную аналитику науки о данных, даже в нетехнические отрасли. секторов , таких как туризм, недвижимость, здравоохранение и другие.
В то время как другие языки, такие как Rust и TypeScript, пытаются извлечь выгоду, Python уже хорошо зарекомендовал себя и зарекомендовал себя в этих областях. Python имеет прекрасные возможности для роста вместе с этим историческим всплеском инноваций, основанных на данных..
Поскольку с каждой версией выпускается больше инструментов визуализации и анализа данных, кажется, что Python не откажется от лидерства в ближайшее время.
Читать далее о Python
- Обновления Python 3.9: топографическая сортировка и манипуляции со строками
- 10 причуд Python, о которых вы должны знать в своем коде
- 50 вопросов и ответов на собеседовании по Python