Python 2 vs Python 3: краткий обзор и практические соображения
Python – это многофункциональный язык программирования для разработки различных программных проектов. Python вышел в свет в 1991 и назван в честь британской комик-группы Monty Python: так разработчики хотели подчеркнуть, что этот язык программирования настолько прост в использовании, что это даже смешно. Простота установки, относительно понятный синтаксис, немедленное сообщение об ошибках – благодаря таким своим качествам Python является отличным решением как для новичков, так и для опытных разработчиков.
Python является мультипарадигмальным языком программирования (это значит, что он поддерживает несколько стилей программирования, включая объектно-ориентированное программирование и написание сценариев), а потому его можно применить в разработке практически любого проекта. Python всё чаще используется в промышленности такими организациями, как United Space Alliance (главная поддержка шаттлов НАСА) и Industrial Light & Magic (студия анимации Lucasfilm). Python предлагает много возможностей для тех, кто хочет подобрать мощный дополнительный язык программирования.
Язык Python был разработан в поздние 80-е и вышел в 1991 году; его автором является Гвидо ван Россум (Guido van Rossum).
Python разрабатывался как преемник языка программирования ABC, его первая версия уже включала обработку исключений, функции и классы с наследованием. После создания в 1994 году форума конференции Usenet под названием comp.lang.python база пользователей Python значительно выросла, благодаря чему Python стал одним из самых популярных языков программирования для разработки программ с открытым исходным кодом.
Краткий обзор
Прежде чем перейти к потенциальным возможностям и ключевым программным различиям между Python 2 и Python 3, давайте ознакомимся с особенностями этих релизов Python.
Python 2
Вышедшая в 2000 году версия Python 2 сделала процесс разработки более прозрачным и всеобъемлющим по сравнению с предыдущими версиями Python с реализацией PEP.
Примечание: PEP (Python Enhancement Proposal) – техническая спецификация, которая предоставляет информацию членам сообщества Python или же описывает новую функцию языка.
Кроме того, Python 2 предложил множество новых функций: циклический сборщик мусора для автоматизации управления памятью, расширенную поддержку Unicode для стандартизации символов, списковую сборку и т.п. По мере разработки Python 2 набор функций значительно расширился, в том числе появилась унификация типов и классов Python (версия 2.2).
Python 3
Python 3, последняя разрабатываемая версия, уже считается будущим этого языка программирования. Python 3 был выпущен в конце 2008 года, его целью было устранение внутренних конструктивных недостатков предыдущих версий языка. Python 3 сосредоточен на поддержке чистой базы кода и устранении избыточности.
Основные изменения в Python 3.0: замена оператора print встроенной функцией, улучшение способа деления целых чисел и продвинутая поддержка Unicode.
Сначала Python 3 восприняли прохладно, поскольку он не был совместим с Python 2, а это заставляло пользователей делать выбор между привычной и новой версиями языка. Кроме того, многие библиотеки были доступны только для Python 2; но когда команда разработчиков Python 3 подтвердила, что поддержка Python 2 прекращается, большинство библиотек было адаптировано для Python 3.
Python 2.7
Версия Python 2.7 вышла 3 июля 2010 года и должна была стать последней версией Python 2.х.
Версия Python 2.7 была предназначена для пользователей Python 2.х, которым трудно перейти на новую версию, Python 3, и должна была обеспечить совместимость этих версий. Она предоставляла усовершенствованные модули для версии 2.7 (например unittest для поддержки автоматизации тестирования, argparse для разбора параметров командной строки, а также более удобные классы – коллекции).
Таким образом, версия Python 2.7 оказалась в уникальном положении: он стал связующим звеном между Python 2 и Python 3.0, благодаря своей совместимости со многими надежными библиотеками он получил популярность среди программистов. Как правило, сегодня при упоминании Python 2 имеется в виду именно версия Python 2.7.
Версия Python 2.7 по-прежнему остаётся в разработке, которая на данный момент почти полностью состоит из исправлений багов и будет полностью прекращена в 2020 году.
Ключевые различия
Python 2.7 и Python 3 имеют много общих возможностей, однако их не следует воспринимать как взаимозаменяемые версии. Конечно, вы можете писать хороший код и полезные программы в любой из этих версий, однако следует помнить о серьёзных различиях в синтаксисе и обработке.
Ниже мы рассмотрим несколько общих примеров, но, скорее всего, вы столкнётесь с гораздо большим количеством различий, постоянно работая в Python.
В Python 2 print является оператором, а в Python 3 – встроенной функцией. К примеру, чтобы вывести в Python 2 предложение Sharks are my favorite sea creatures, вы можете использовать следующую команду:
print «Sharks are my favorite sea creatures»
В Python 3 print() является функцией, потому, чтобы вывести такое предложение, нужно ввести:
print(«Sharks are my favorite sea creatures»)
Благодаря этому изменению синтаксис языка Python стал более последовательным. Теперь синтаксис функции print() совместим с Python 2.7.
Деление целых чисел
В Python 2 целым считалось любое число, введённое без десятичных знаков. На первый взгляд, это довольно простой способ обработки. Однако при попытке поделить одно целое число на другое бывает результат с плавающей точкой, например:
Но целые числа в Python 2 не могли изменить свой тип, а потому не могли использовать плавающую точку.
Когда два числа по обе стороны символа деления являются целыми числами, деление floor, то есть, для фактора х Python 2 возвращает наибольшее целое число меньше или равное х. К примеру, при делении 5 / 2 таким числом будет 2.
a = 5 / 2
print a
2
Чтобы обойти эту проблему, можно добавить десятичные знаки, 5.0 / 2.0, и тогда Python 2 вернет 2.5.
В Python 3 деление целых чисел становится понятнее.
a = 5 / 2
print(a)
2.5
Чтобы выполнить деление floor и получить только целую часть числа, нужно использовать следующий синтаксис Python 3:
b = 5 // 2
print(b)
2
Это изменение в Python 3 значительно улучшило деление целых чисел.
Поддержка Unicode
Языки программирования обрабатывать строковый тип (то есть последовательность символов) несколькими различными способами, благодаря чему компьютеры могут преобразовывать числа в буквы и другие символы.
По умолчанию Python 2 использует алфавит ASCII. ASCII даже с расширениями ограничен парой сотен символов, и, очевидно, является не самым гибким методом кодирования, особенно это касается символов, не относящихся к английскому алфавиту.
Более универсальный и надежный метод кодировки символов Unicode поддерживает более 128 000 символов. Чтобы использовать Unicode, в Python 2 нужно начинать строку с префикса u, например:
Python 3 использует Unicode по умолчанию. Это не только экономит время разработчика, но и открывает доступ к огромному набору символов. Unicode поддерживает разнообразные символы и эмодзи, а также гарантирует поддержку проекта на мобильных устройствах.
Если вы хотите сделать код Python 3 обратно совместимым с Python 2, вы можете по-прежнему использовать префикс u.
Постоянная поддержка
Самым большим различием между Python 3 и Python 2 является не синтаксис, а тот факт, что Python 2.7 потеряет постоянную поддержку в 2020 году, а Python 3 будет продолжать развиваться, в результате чего он получит более широкие возможности и большее количество исправлений ошибок.
Новейшие разработки посвящены отформатированным строковым литералам, упрощению настройки создания класса и синтаксического способа обработки матричного умножения.
Остающаяся в разработке версия Python 3 предоставляет пользователям своевременное исправление багов и более производительные программы.
Заключение
Python – многофункциональный и хорошо задокументированный язык программирования.
Хотя между Python 2 и Python 3 существует несколько значительных различий, перейти с одной версии на другую очень просто, это требует лишь небольшой дополнительной настройки. Более того, код Python 3 обычно можно запустить и в Python 2.7.
Важно понимать, что чем больше разработчиков будет использовать Python 3, тем быстрее Python 3 будет совершенствоваться и расширяться, учитывая требования своих пользователей.
Python or Python3. What is the difference?
Maybe python is Python 2. Maybe it’s Python 3. Maybe it’s a different version of Python 3. Maybe it’s nothing. Depends how your system is set up. Use python -V to check.
Nov 12, 2020 at 9:30
Because we had python2 before and that has reached end of life. So on newer systems without python2, python and python3 both use python3. If you have multiple python versions the latest one will be used. But even then, you can use python virtual environment to «lock» your dependencies and python version (pipdeptree > req.txt, , pip — r req.txt )
Nov 12, 2020 at 9:33
Related: stackoverflow.com/questions/57368515/… (not sure if that can be considered a duplicate)
Nov 12, 2020 at 9:34
3 Answers 3
There is no single correct answer here, but we can offer some common observations.
- Some Linux distributions decided during the transition from Python 2 to Python 3 that python should always refer to Python 2, and the command to run Python 3 would be python3 with a 3 at the end. Now that Python 2 is becoming obsolete, this is being relaxed in some distros (i.e. now that they no longer ship Python 2 at all, the python command can be allowed to point to Python 3, too), but this is going to continue to exist in some form for some time.
- See PEP 394
To help us help you debug questions about your installation, you will commonly need to tell us exactly what you installed where and how, and show us the value of your PATH . If you have relevant functions, aliases, or personal shell scripts which shadow the system-wide default ones, show them too. On Unix-based platforms, the type and command commands can be used to show what will be executed (many guidances will tell you to use which or whereis , but don’t; now we have to guess which non-standard command you are using, and where it is going to look). The Windows command whereis provides roughly the same functionality.
Don’t call me Shirley, please.
29k 9 9 gold badges 62 62 silver badges 83 83 bronze badges
answered Dec 30, 2021 at 6:08
177k 34 34 gold badges 276 276 silver badges 321 321 bronze badgesYes, it will make difference if you have different versions of python installed.
This depends on the entries in on the PATH environment variable. Suppose you have two python installations, 2.7 and 3.8, now you have installed 2.7 before 3.8, and both were added to PATH, so when you type python , 2.7 interpreter launches. If you have done vice versa, then 3.8 would launch. You can type where python to determine location.
Also one thing is that there is a launcher named py , just type py -3.8 3.8 interpreter will launch and same on py -2.7
answered Nov 12, 2020 at 9:32
14.9k 3 3 gold badges 16 16 silver badges 36 36 bronze badgesFor the longest time, py was specific to Windows, but a similar mechanism is now available for other systems as an option, too.
Dec 30, 2021 at 6:03
NOTE: Answer provided with specific consideration for it now being 2023, and for Windows users
Nowadays, python = python3
To answer your questions, given the example of.
> python setup.py > python3 setup.py- What if I only have python3.6 installed? These would/should run in the same version of python, e.g. 3.6
- Do python and python3 do the same thing? In 2023, they should yes
- Does it make difference when different versions are installed? If so, which version will be used? The other answers cover this in really good detail
Some config may be required (and recommended)
- If you want your system to accept either python setup.py or python3 setup.py and run these commands on the whichever version of python you have installed then I would recommend creating a symbolic link from python3 ==> python
- If you don’t know how to do that, copy the code below into notepad.exe, save it as ‘python3-as-python.bat` (remember to select ‘All files’), then right click and choose ‘Run as Administrator’
python3-as-python.bat --------------------- @ECHO OFF :: Creates an alias for python3, any python3 [. ] commands will be executed as if typed as python [. ] :: Checks default locations for single-user install and all-user install :: Run as adminstrator if possible (required if python was installed for all users) IF EXIST "%ProgramFiles%\Python3*" ( PUSHD "%ProgramFiles%\Python3*" MKLINK python3.exe python.exe >nul IF EXIST python3.exe ECHO Python found in 'Program Files', alias created for python3 --^> python ) IF EXIST "%LocalAppData%\Programs\Python\Python*" ( PUSHD "%LocalAppData%\Programs\Python\Python*" MKLINK python3.exe python.exe >nul IF EXIST python3.exe ECHO Python found in user's 'AppData' folder, alias created for python3 --^> python ) ECHO. PAUSE GOTO:EOFRationale
- Having just installed the latest version of python (3.11) from python.org myself, this was something I was also forced to try and work out as when I ran any commands like python3 setup.py I got an error saying python was not installed
- As of April 2023 (and possibly earlier), the official python installer only provides/creates python.exe and while it adds this to the %PATH% for ease-of-reference it does NOT create python3.exe , so any scripts or code with commands like python3 setup.py would need to be converted to python setup.py
- With genuine credit and respect to the previous answers provided, in my option the simplest answer is that nowadays python == python3 . Given the nature of it being 2023 and python3 coming out in 2008, the number of instances where people explicitly need to run python scripts on a 15-year old version(!) should be extremely minimal
- NOTE: I am not trying to dismiss any of the advice or cautions given, but rather provide a simple, up-to-date answer that applies to most people.
Что лучше: python 2 или 3?
Привет! Хочу пробежаться по питону, какая ветка актуальнее, или все зависит от задач?
Да и вообще,что нового в 3 ветке?- Вопрос задан более трёх лет назад
- 25678 просмотров
Комментировать
Решения вопроса 2RomanAkaMagician @RomanAkaMagician
Можно долго спорить какая версия лучше, но с логической стороны поддержку 2 ветки продлили до 2020 (вроде как) при этом большинство крупных проектов уже переехали 3, то что имеет смысл начинать с 3 версии.
Ответ написан более трёх лет назад
Комментировать
Нравится 5 Комментировать
Для пробежки любая норм
Да и вообще,что нового в 3 ветке
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 6
борец с ветряными мельницамиТак толсто, что даже тонко. Предлагаю дождаться вам четвертой ветки.
Ну а если этот вопрос задан на полном серьезе, то с каждым минорным релизом в третьей ветке грустит один адепт второй, ведь рано или поздно (на самом деле поздно) им придется мигрировать.
Под типичный круг задач есть свои наборы популярных модулей, подавляющее большинство которых медленно-медленно, но стали совместимы с третьей веткой. Если ничего сверхъестественного делать не собираетесь, то стоило бы использовать ее.
Ответ написан более трёх лет назад
Комментировать
Нравится 5 КомментироватьА вам нужен абстрактный питон или питон и какие-то особые библиотеки? Не смотря на то что питон 3 вышел довольно давно, до сих пор не все библиотеки работает под ним, и для многих из них придется пользоваться второй версией.
Ответ написан более трёх лет назад
Комментировать
Нравится 2 КомментироватьРаз уж вы только собрались подружится с Python, то конечно актуальнее начать знакомство с третьей версией интерпретатора. А лучше или хуже, не серьезно звучит вопрос. Python он и в Африке Python.
Ответ написан более трёх лет назад
Нравится 1 1 комментарий
Иван Иванов @0x3 Автор вопроса
Я читал сравнения. Разница довольно ощутимая
Разработчик на Django/Python, JavaScript
можно в гугле написать «python 3 vs python 2» :))))))))
Ответ написан более трёх лет назад
Не поверите! Написал, перешел по ссылке, а тут обратно в гугл отправляют!
угадайте, какая ссылка будет первой в поиске?

Рекомендую начать с 3й версии — Киллер-фичи Python 3
Ответ написан более трёх лет назад
Комментировать
Нравится КомментироватьОдного варианта ответа нет.
1) Если просто хотите начать изучать и не знаете для чего, то Python 3
2) Если конкретно под какую-то программу или компанию, то ту версию какая там используется
3) Если хотите с помощью Python подрабатывать, делать какие-то проекты, и если в них не важна версия, то лучше Python 2, так как для него больше готовых кодов, больше поддержки, и готовых ответов на вопросы в интернете.
4) Если представить что человек знает обе версии на отлично, то лучше для новых проектов использовать Python 3
5) Ещё момент, при использование готовых библиотек может оказаться, что нужная работает на 3.6, а на 3.7 и более новых версиях не работает.Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопросВойдите, чтобы написать ответ

- Python
Палиндромы leetcode, в VS все правильно, на сайте другой ответ, что делать?
- 1 подписчик
- 4 часа назад
- 59 просмотров
Питон 2 против. Python 3: ключевая разница между 2.x и 3.x
Python 2 упростил процесс разработки кода по сравнению с предыдущими версиями. В нем реализованы технические детали предложения по расширению Python (PEP). Python 2.7 (последняя версия в 2.x) больше не находится в разработке и в 2020 году его поддержка будет прекращена.
Что такое Python 3?
Python 3 это более новая версия Язык программирования Python который был выпущен в декабре 2008 года. Эта версия в основном была выпущена для исправления проблем, существующих в Python 2. Характер этих изменений таков, что Python 3 стал несовместим с Python 2. Это обратно несовместимый.
Некоторые функции Python 3 были перенесены в версии Python 2.x, чтобы упростить процесс миграции в Python 3. В результате для любой организации, которая использовала версию Python 2.x, для переноса своего проекта на версию 3.x потребовалось много усилий. изменения. Эти изменения касаются не только проектов и приложений, но и всех библиотек, входящих в экосистему Python.
КЛЮЧЕВАЯ РАЗНИЦА
- Синтаксис Python 3 проще и понятнее, тогда как синтаксис Python 2 сравнительно сложен для понимания.
- В Python 3 строки по умолчанию хранятся в Юникоде, тогда как в хранилищах Python 2 необходимо определять строковое значение в Юникоде с помощью «u».
- Значение переменных Python 3 никогда не меняется, тогда как в Python 2 значение глобальной переменной будет меняться при использовании ее внутри цикла for.
- Исключения Python 3 следует заключать в круглые скобки, а исключения Python 2 — в обозначениях.
- Правила сравнения порядка в Python 3 упрощены, тогда как правила сравнения порядка в Python 2 сложны.
- Python 3 предлагает функцию Range() для выполнения итераций, тогда как в Python 2 для итераций используется функция xrange().
Почему вам следует изучать Python 2?

Несмотря на то, что Python 2 — это старая версия с открытым исходным кодом, вам все еще необходимо изучить Python 2:
- Чтобы стать инженером DevOps, вам нужно работать с инструментами управления конфигурациями, такими как puppet или ansible. Здесь вам нужно работать с обеими этими версиями.
- Если код вашей компании написан на Python 2, вам потребуется научиться с ним работать.
- Если ваша команда разработчиков работает над проектом, который зависит от определенных сторонних библиотек или программного обеспечения, которые вы не можете перенести на Python 3, то Python 2 — единственный доступный для вас вариант.
Почему вам следует использовать Python 3?

Вот основные причины использования версий Python 3.x:
- Python 3 поддерживает современные методы, такие как искусственный интеллект, машинное обучение и наука о данных.
- Python 3 поддерживается большим сообществом разработчиков Python. Получить поддержку легко.
- Язык Python легче изучить по сравнению с более ранними версиями.
- Предлагает мощный набор инструментов и библиотеки.
- Смешивается с другими языками
История Python 2
- Python 2.0 — октябрьский 16, 2000
- Python 2.1 — апрель 17, 2001
- Python 2.2 — декабрь 21, 2001
- Python 2.3 — июль 29, 2003
- Python 2.4 — ноябрь 30, 2004
- Python 2.5 — сентябрь 19, 2006
- Python 2.6 — октябрьский 1, 2008
- Python 2.7 — 3 июля 2010 г.
История Python 3
- Python 3.0 — декабрь 3, 2008
- Python 3.1 — июнь 27, 2009
- Python 3.2 — февраль 20, 2011
- Python 3.3 — сентябрь 29, 2012
- Python 3.4 — 16 марта 2014 г.
- Python 3.5 — сентябрь 13, 2015
- Python 3.6 — октябрь 2016 г.
- Python 3.7 — июнь 2018 г.
Ключевые различия между Python 2 и Python 3
Вот основное различие между Python 2 и Python 3:

Основа сравнения Python 3 Python 2 Дата выпуска 2008 2000 Функция печати напечатать («привет») напишите «привет» Деление целых чисел Всякий раз, когда два целых числа делятся, вы получаете значение с плавающей запятой. Когда два целых числа делятся, вы всегда предоставляете целочисленное значение. Unicode В Python 3 по умолчанию для хранения строк используется Unicode. Чтобы сохранить строковые значения Unicode, вам необходимо определить их с помощью «u». Синтаксис Синтаксис проще и понятнее. Синтаксис Python 2 было сравнительно сложно понять. Правила заказа Сравнения В этой версии упрощены Правила упорядочивания сравнений. Правила сравнения порядков очень сложны. итерация Представлена новая функция Range() для выполнения итераций. В Python 2 для итераций используется функция xrange(). Исключения Оно должно быть заключено в скобки. Оно должно быть заключено в обозначения. Утечка переменных Значение переменных никогда не меняется. Значение глобальной переменной будет меняться при использовании ее внутри цикла for. Обратная совместимость Перенести Python 2 на Python 3 несложно, но это никогда не бывает надежным. Python версии 3 не имеет обратной совместимости с Python 2. Библиотека Многие недавние разработчики создают библиотеки, которые можно использовать только с Python 3. Многие старые библиотеки, созданные для Python 2, не имеют прямой совместимости. Пример кода Python 2 и Python 3
Python 3
def main(): print("Hello World!") if __name__== "__main__": main()Python 2
def main(): print "Hello World!" if __name__== "__main__": main()
Какую версию Python использовать?
Когда дело доходит до различий между Python 2 и Python 3 сегодня, версия Python 3 является безоговорочным победителем. Это потому, что Python 2 не будет доступен после 2020 года. Массовое внедрение Python 3 — это ясное направление будущего.
Учитывая сокращение поддержки языка программирования Python 2 и дополнительные преимущества от обновлений до Python 3, новому разработчику всегда рекомендуется выбирать версию Python 3. Однако, если работа требует возможностей Python 2, это будет единственной веской причиной для выбора версии Python XNUMX. используйте эту версию.
Итоги
- Python 2 упростил процесс разработки кода по сравнению с предыдущими версиями. В нем реализованы технические детали предложения по расширению Python (PEP). Python 2.7 (последняя версия в 2.x) больше не находится в разработке и в 2020 году его поддержка будет прекращена.
- Python 3 — это новая версия языка программирования Python, выпущенная в декабре 2008 года. Эта версия была выпущена в основном для устранения проблем, существующих в Python 2. Природа этих изменений такова, что Python 3 был несовместим с Python 2. Это обратно несовместимы.
- В Python 2 правила сравнения порядка были упрощены.
- В Python 3 правила сравнения порядка очень сложны.
- Когда дело доходит до различий между Python 2 и 3 сегодня, версия Python 3 является безоговорочным победителем.
- Онлайн-компилятор Python (редактор/интерпретатор/IDE) для запуска кода
- Учебное пособие по PyUnit: Платформа модульного тестирования Python (с примером)
- Как установить Python в Windows [Pycharm IDE]
- Hello World: создайте свою первую программу на Python
- Переменные Python: как определить/объявить типы строковых переменных
