HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Статья рассказывает, в чём разница между Python 2 и 3. Приводятся сравнительные примеры кода, показываются особенности работы функции print. Даются советы, какую версию выбрать и почему.</p>
1 <p>Статья рассказывает, в чём разница между Python 2 и 3. Приводятся сравнительные примеры кода, показываются особенности работы функции print. Даются советы, какую версию выбрать и почему.</p>
2 <p>О том, что официальная поддержка "Пайтон" 2 скоро прекратится, было объявлено уже давно. Но это не помешало выпустить Python 2.7.18 в апреле 2020 года. Тогда же разработчики<a>утверждали</a>, что это точно последний релиз, поэтому всем рекомендуется переходить на 3-ю версию. Сложно предсказать будущее, но очевидно одно: в противостоянии "Пайтон" 3 vs 2 - более перспективным направлением для развития является именно номер три.</p>
2 <p>О том, что официальная поддержка "Пайтон" 2 скоро прекратится, было объявлено уже давно. Но это не помешало выпустить Python 2.7.18 в апреле 2020 года. Тогда же разработчики<a>утверждали</a>, что это точно последний релиз, поэтому всем рекомендуется переходить на 3-ю версию. Сложно предсказать будущее, но очевидно одно: в противостоянии "Пайтон" 3 vs 2 - более перспективным направлением для развития является именно номер три.</p>
3 <p>Есть ещё несколько причин остановить свой выбор на "Питоне" 3.x.x: • официальная поддержка сообществом; • более простое изучение (это мнение субъективно, но некоторые его высказывают); • мощнейший инструментарий, множество библиотек; • применимость в машинном обучении и AI, плюс язык используется при обработке больших данных (Big Data).</p>
3 <p>Есть ещё несколько причин остановить свой выбор на "Питоне" 3.x.x: • официальная поддержка сообществом; • более простое изучение (это мнение субъективно, но некоторые его высказывают); • мощнейший инструментарий, множество библиотек; • применимость в машинном обучении и AI, плюс язык используется при обработке больших данных (Big Data).</p>
4 <p>Главной причиной должно стать то, что "Питон" 2 сегодня является устаревшей версией. Несмотря на это, списывать в утиль его ещё рано: • если вы DevOps-инженер, надо разбираться в конфигурации инструментов управления типа Ansible или Puppet. То есть пригодится умение работать с двумя версиями "Пайтона"; • если большинство проектов в компании реализовано с помощью "Пайтон" 2, знать эту версию тоже необходимо; • если при реализации проекта, требуемые сторонние библиотеки или софт не поддерживаются Python 3, опять же, единственным вариантом остаётся "Пайтон" 2.</p>
4 <p>Главной причиной должно стать то, что "Питон" 2 сегодня является устаревшей версией. Несмотря на это, списывать в утиль его ещё рано: • если вы DevOps-инженер, надо разбираться в конфигурации инструментов управления типа Ansible или Puppet. То есть пригодится умение работать с двумя версиями "Пайтона"; • если большинство проектов в компании реализовано с помощью "Пайтон" 2, знать эту версию тоже необходимо; • если при реализации проекта, требуемые сторонние библиотеки или софт не поддерживаются Python 3, опять же, единственным вариантом остаётся "Пайтон" 2.</p>
5 <h2>Python 2 vs 3</h2>
5 <h2>Python 2 vs 3</h2>
6 <p>В таблице ниже кратко представлены некоторые отличия и разница версий (2 vs 3):</p>
6 <p>В таблице ниже кратко представлены некоторые отличия и разница версий (2 vs 3):</p>
7 <p>В результате можно сказать, что языки отличаются следующим: • синтаксис в 3-м "Питоне" проще и понятнее для понимания; • по дефолту, чтобы хранить строки, применяется Unicode, а в Python 2 строковое значение нужно определять посредством "u"; • в третьей ветви языка значения переменных не меняются никогда, а во второй они меняются в случае применения внутреннего цикла for; • в Python 3 исключения помещают в круглые скобки, а в Python 2 они должны быть заключены в notations; • упрощены правила очереди для сравнений; • в Python 3 для итераций есть функция range(), а в Python 2 применяется xrange().</p>
7 <p>В результате можно сказать, что языки отличаются следующим: • синтаксис в 3-м "Питоне" проще и понятнее для понимания; • по дефолту, чтобы хранить строки, применяется Unicode, а в Python 2 строковое значение нужно определять посредством "u"; • в третьей ветви языка значения переменных не меняются никогда, а во второй они меняются в случае применения внутреннего цикла for; • в Python 3 исключения помещают в круглые скобки, а в Python 2 они должны быть заключены в notations; • упрощены правила очереди для сравнений; • в Python 3 для итераций есть функция range(), а в Python 2 применяется xrange().</p>
8 <h2>Модуль<strong>future</strong></h2>
8 <h2>Модуль<strong>future</strong></h2>
9 <p>При разработке 3-й версии "Питона" в язык были включены некоторые ключевые слова и функции, несовместимые с Python 2. Но это не значит, что ими нельзя воспользоваться. Если требуется поддержка Python-кода 3-й версии, можно выполнить импорт, для чего существует встроенный модуль<strong><em>future</em></strong>.</p>
9 <p>При разработке 3-й версии "Питона" в язык были включены некоторые ключевые слова и функции, несовместимые с Python 2. Но это не значит, что ими нельзя воспользоваться. Если требуется поддержка Python-кода 3-й версии, можно выполнить импорт, для чего существует встроенный модуль<strong><em>future</em></strong>.</p>
10 <p>Вот как выглядит импорт функциональности, поддерживающей деление целых чисел:</p>
10 <p>Вот как выглядит импорт функциональности, поддерживающей деление целых чисел:</p>
11 <p>Прочие детали по модулю<strong>future</strong>можно посмотреть на странице ниже:</p>
11 <p>Прочие детали по модулю<strong>future</strong>можно посмотреть на странице ниже:</p>
12 <h2>Сравниваем код. Функция print</h2>
12 <h2>Сравниваем код. Функция print</h2>
13 <p>Лучше всего рассматривать разницу наглядно. Для этого подойдёт простейший код. Начнём с Python 2:</p>
13 <p>Лучше всего рассматривать разницу наглядно. Для этого подойдёт простейший код. Начнём с Python 2:</p>
14 def main(): print "Hello, OTUS!" if __name__== "__main__": main()<p>А теперь "Пайтон" 3:</p>
14 def main(): print "Hello, OTUS!" if __name__== "__main__": main()<p>А теперь "Пайтон" 3:</p>
15 def main(): print("Hello, OTUS!") if __name__== "__main__": main()<p>Самое заметное отличие - это<strong>изменение синтаксиса print</strong>. Используемый ранее оператор print заменили функцией print(). В результате объект вывода надо теперь обязательно заключать в скобки. И если в старом "Питоне" проблемы с дополнительными скобками "in print" отсутствуют, то в новом, в случае вызова print прежним способом, возникнет<strong>SyntaxError</strong>. Чтобы всё это проверить, совсем необязательно устанавливать у себя сразу два "Пайтона". Можно воспользоваться онлайн-компилятором (можно найти компилятор и для двойки, и для тройки). Есть и другие различия, но они выходят за рамки данной статьи.</p>
15 def main(): print("Hello, OTUS!") if __name__== "__main__": main()<p>Самое заметное отличие - это<strong>изменение синтаксиса print</strong>. Используемый ранее оператор print заменили функцией print(). В результате объект вывода надо теперь обязательно заключать в скобки. И если в старом "Питоне" проблемы с дополнительными скобками "in print" отсутствуют, то в новом, в случае вызова print прежним способом, возникнет<strong>SyntaxError</strong>. Чтобы всё это проверить, совсем необязательно устанавливать у себя сразу два "Пайтона". Можно воспользоваться онлайн-компилятором (можно найти компилятор и для двойки, и для тройки). Есть и другие различия, но они выходят за рамки данной статьи.</p>
16 <p><em>Источник - https://python-scripts.com/python-2-vs-3.</em></p>
16 <p><em>Источник - https://python-scripts.com/python-2-vs-3.</em></p>
17  
17