Перейти к содержимому

Питон 2 что это

  • автор:

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.

Print

В 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 2 против Python 3: в чем отличия и какую версию выбрать?

Python известен как универсальный язык программирования общего назначения. Это язык высокого уровня с открытым исходным кодом, который легко выучить благодаря использованию простого английского синтаксиса.

Благодаря многочисленным преимуществам (о которых мы поговорим позже) мультипарадигмальный язык программирования хорошо подходит для различных вариантов использования. С момента своего появления в 2000 году Python 2 прошел долгий путь от новинки до того, как стал любимцем программистов. Поскольку Python 2.7 был последним крупным обновлением в 2010 году, датой окончания срока службы Python 2 было 1 января 2020 года.

Python 3 был выпущен как обновление Python 2 в 2008 году, и эти две версии сосуществовали около десяти лет. Сегодня Python 3 используется 95% Python-разработчиков . Если вы ищете разработчиков Python, вы можете отдать предпочтение Python 3, а не Python 2.

Но о чем именно спорят, когда речь заходит о Python 2 и Python 3? А Python 2 еще актуален? Читайте дальше, возможно, вы будете удивлены ответом.

Что такое Python 2?
Python 2.0 должен был принести в массы больше инклюзивности и грамотности программирования. Перед выпуском в 2010 году Python в значительной степени поддерживался его создателем Гвидо ван Россумом, который разработал исходную версию языка в 1991 году.

С Python 2 Россум открыл возможности разработки и усовершенствования Python для более широкого сообщества разработчиков. По мере того, как сообщество вносило свой вклад в будущие выпуски и совершенствовало свою кодовую базу, Python 2 стал одним из наиболее часто используемых языков в мире.

Python 2 поднял первоначальную цель языка по распространению грамотности программирования на новый уровень благодаря множеству улучшений по сравнению с предыдущими версиями.

Он также сыграл важную роль в разработке таких языков, как Perl и Ruby, и сегодня используется такими организациями, как Netflix, Spotify, Reddit, Uber и Instagram.

Что такое Python 3?
Python 3 был выпущен в 2008 году. Он стремился улучшить Python 2, не внося радикальных изменений в новую версию 2.x. Следовательно, Python 3 появился как отдельная ветвь общей экосистемы Python. По дизайну Python 3 обратно несовместим с Python 2.

База пользователей Python разделена между Python 2 и 3 в зависимости от различий в вариантах использования и их готовности выполнять сложные миграции.

От веб-разработки и компьютерной графики до машинного обучения и анализа данных — две версии Python подходили для разных вариантов использования. Даже сейчас Python 2 предпочтительнее Python 3 при написании кода для компьютерной графики, игр и разработки мобильных приложений .

Хотя некоторые функции Python 3 были перенесены в Python 2, чтобы облегчить переход на Python 3, этот процесс по-прежнему требует значительных усилий.

В чем отличия между Python 2 и Python 3?
Поскольку Python 3 является таким значительным отклонением от Python 2, между двумя версиями обязательно будут серьезные различия.

  • Обратная совместимость: хотя код Python 2 может быть перенесен в Python 3 с некоторыми усилиями, Python 3 не имеет обратной совместимости с Python 2.
  • Синтаксис: Python 2 имеет более сложный синтаксис и его труднее понять по сравнению с Python 3, хотя синтаксис похож.
  • Современное использование: использование Python 2 практически прекратилось, в то время как Python 3 популярен как никогда и используется 95% разработчиков Python.
  • Применение: Python 2 предпочтительнее для некоторых вариантов использования, таких как разработка мобильных приложений и компьютерная графика, в то время как для всего остального по-прежнему предпочтительна версия Python 3.
  • Хранение строк: Python 2 по умолчанию хранит строки в ASCII, а Питон 3 хранит их в Unicode.
  • Целочисленное деление: Python 2 предоставляет целочисленное значение при делении целых чисел, тогда как Python 3 предоставляет значения с плавающей запятой (например, 9, разделенное на 4, даст 2 в Python 2 и 2,5 в Python 3).
  • Исключения: Python 2 заключает исключения в обозначения, тогда как Python 3 заключает их в круглые скобки.
  • Утечка переменных: в Python 2 переменные изменяемы (например, при использовании внутри цикла for). Но в Python 3 значения переменных не изменяются.
  • Итерация: в Python 2 функция xrange() используется для итераций, но в Python 3 вместо нее используется новая функция Range().

Python 3 — это современная версия языка, и помимо множества преимуществ, перечисленных выше, это более безопасная и актуальная версия. Если вы все еще используете Python 2, ваши системы подвержены проблемам безопасности и ошибкам.»»

Python 3 также имеет гораздо большее сообщество, которое регулярно исправляет ошибки и работает над новыми выпусками, чтобы улучшить функциональность и стабильность своей кодовой базы. Вы получаете доступ к более высокой производительности и постоянно обновляемым функциям.

Python 3 был разработан как более удобочитаемая и простая для понимания версия языка.

Зачем оставаться с Python 2?
Хотя Python 2 сейчас устарел и вызывает проблемы с безопасностью и стабильностью, если вы все еще используете его в своих системах, все же может быть причина, чтобы остаться с ним.

Многие компании имеют приложения, написанные на Python 2, и не хотят переходить на Python 3, опасаясь поломки приложений. Миграция, как правило, требует больших усилий и требует не только времени, но и значительных денежных вложений. Поддержка таких устаревших приложений означает сохранение кода Python 2 наряду с усилиями по внедрению Python 3 для новых задач разработки.

Какая версия лучше: Python 2 или Python 3? За и против

Изучив различия между двумя версиями Python и причины «оставаться или двигаться», можно задаться вопросом, какая из версий лучше.

Преимущества Python 3
Python 3, безусловно, является лучшей версией этих двух. Дебаты между Python 2 и Python 3 на самом деле не выдерживают критики из-за значительных улучшений, которые Python 3 имеет по сравнению с Python 2.

В дополнение к производительности, синтаксису и всем другим улучшениям качества жизни, Python 3 также является лучшим вариантом с точки зрения безопасности и надежности. Постоянно растущее сообщество Python 3 обеспечивает быстрое исправление ошибок и регулярное внедрение новых функций.

Преимущества Python 2
Python 2 лучше подходит для некоторых случаев использования, как мы обсуждали выше. Если вы работаете с компьютерной графикой, играми или разработкой для мобильных устройств, стоит попробовать Python 2.

Для разработчиков, пожалуй, единственная причина изучать Python 2 или работать с ним — это получить навыки миграции на Python 3. Кроме того, компаниям требуются разработчики Python 2 для поддержки устаревшего кода Python 2.

Как выбрать лучшую версию Python для использования?
Объективно Python 3 может быть лучшей версией, но вам все равно нужно оценить свои потребности и выбрать лучшую версию Python для вашего проекта.

Если вы довольно новая организация, скорее всего, вы не используете Python 2. В этом случае нет практически никаких причин рассматривать Python 2, если только вы не работаете с определенными библиотеками, которые еще не совместимы с Python 3.

Если у вас есть устаревшие приложения Python 2 и вы пока не хотите переходить на Python 3, вы можете сохранить Python 2 и привлечь разработчиков для поддержки вашей кодовой базы. Но рекомендуется запланировать переход на Python 3 как можно скорее. Кроме того, старайтесь выбирать Python 3 для всех новых проектов разработки.

Независимо от вашей версии Python вам потребуется нанять разработчиков Python для проектов разработки, миграции или просто обслуживания. IT and Digital может помочь вам нанять Python-разработчиков мирового класса, не вкладывая кучу денег в поиск и подбор ит персонала. Когда вы сотрудничаете с нашим ит рекрутинговым агентством, вам не нужно нести расходы на найм, которые могут составлять значительный процент от годовой зарплаты разработчика.

Python легко понять и изучить, что также приводит к тому, что огромное количество разработчиков Python борются за востребованные вакансии. Вам необходимо тщательно проверить и провести собеседование с пулом кандидатов, чтобы найти разработчиков для вашего проекта. А на это иногда могут уйти месяцы!

Наше ИТ кадровое агентство предлагает вам найти разработчика Python менее чем за 2 недели. Свяжитесь с нами сегодня, чтобы узнать больше о том, как мы можем помочь масштабировать ваш следующий проект до новых высот. Мы гарантируем поиск самого сильного, а не самого дорого кандидата. За 10 лет в подборе it специалистов, мы закрыли 5500+ вакансий и собрали 25+ команд с нуля. Убедитесь сами и ознакомьтесь с отзывами клиентов о нашем рекрутинговом агентстве! Нужно больше референсов? Напишите нам в телеграмм.

HR Блог для IT рекрутера в Телеграм

Хочешь всегда получать новые статьи, бесплатные материалы и полезные HR лайфхаки! Подписывайся на нас в Telegram! С нами подбор ит персонала становится проще 😉

Python2 vs Python3: различия синтаксиса

Python 3 логотип

Оператор print был заменён функцией print(), с именованными аргументами для замены большей части синтаксиса старого оператора print. Примеры:

Также вы можете настроить разделитель между элементами, например:

  possibilities!

Функция print() не поддерживает особенность «программный пробел» старого оператора print. Например, в Python 2, print «A\n», «B» напечатает «A\nB\n»; но в Python 3, print(«A\n», «B») напечатает «A\n B\n».

Отображения и итераторы вместо списков

Некоторые хорошо известные методы не возвращают списки в Python 3:

  • Методы словарей dict.keys(), dict.items() и dict.values() возвращают «отображения» вместо списков. Например, больше не работает: k = d.keys(); k.sort(). Используйте k = sorted(d).
  • Соответственно, методы dict.iterkeys(), dict.iteritems() и dict.itervalues() более не поддерживаются.
  • map() и filter() возвращают итераторы. Если вам действительно нужен список, быстрым исправлением станет list(map(. )), но часто лучшим исправлением будет использование генераторов списков (особенно когда оригинальный код использует лямбда-выражения), либо переписать код так, чтобы ему не нужен был список как таковой. Особенно сложно, что map() вызывает побочные эффекты функции; правильное преобразование заключается в использовании цикла (создание списка просто расточительно).
  • range() теперь ведёт себя как xrange(), но работает со значениями любого размера. xrange() больше не существует.
  • zip() возвращает итератор.

Операторы сравнения

Python 3 упростил правила для операторов сравнения:

builtin.sorted() и list.sort() больше не принимают аргумент cmp, обеспечивающий функцию сравнения. Вместо этого используйте аргумент key. Аргументы key и reverse теперь «keyword-only».

Функция cmp() должна рассматриваться как устаревшая, и специальный метод __cmp__() в Python 3 не поддерживается. Используйте __lt__() для сортировки, __eq__() с __hash__() для сравнения. (Если вам действительно нужна функциональность cmp(), вы можете использовать выражение (a > b) — (a < b) в качестве эквивалента для cmp(a, b).)

Целые числа

  • PEP 0237: long переименован в int.
  • PEP 0238: Выражение вида 1/2 возвращает float. Используйте 1//2 для отсечения дробной части. (Этот синтаксис существует с Python 2.2)
  • Константа sys.maxint была удалена, с тех пор, как более не существует предела значения целых чисел. Однако, sys.maxsize может быть использован как число, большее любого практического индекса списка или строки. sys.maxsize соответствует «естественному» размеру целого и, как правило, имеет такое же значение, как sys.maxint на той же платформе (при условии одних и те же параметров сборки).
  • repr() от длинного целого числа не включает более завершающий символ L, так что код, который безусловно отрезает этот символ, будет отрезать вместо этого последнюю цифру. (Используйте str() вместо этого.)
  • Восьмеричные литералы более не имеют формы вида 0720; используйте 0o720.

Текст, Unicode и 8-битные строки

Все, что вы знали о бинарных данных и Unicode, изменилось.

Python 3 использует понятия текста и (бинарных) данных вместо строк Unicode и 8-битных строк. Весь текст — Unicode; Однако кодированные Unicode строки представлены ​​в виде двоичных данных. Тип , используемый для хранения текста является str, тип, используемый для хранения данных — bytes. Самое большое различие с python 2.x является то, что любая попытка комбинировать текст и данные в Python 3.0 поднимает TypeError, в то время как если бы вы смешивали Unicode и 8-битные строки в Python 2.x, это будет работать, если 8-битная строка содержала только 7-битные (ASCII) символы, но вы получите UnicodeDecodeError, если она содержит не-ASCII символы. Такое поведение вызывало многочисленные скорбные лица на протяжении многих лет.

Как следствие этого изменения в философии, значительная часть кода, который использует Unicode, кодировки или бинарные данные, скорее всего, должна измениться. Это изменения к лучшему, так как в python 2.x были многочисленные ошибки, имеющие отношение к смешиванию закодированного и декодированного текста. Чтобы быть подготовленным к этому, в Python 2.x следует начать использовать Unicode для всего незакодированного текста, и str только для бинарных или закодированных данных . Затем инструмент 2to3 будет делать большую часть работы за вас.

Вы можете больше не использовать литерал u». » для текста Unicode. Тем не менее, вы должны использовать литерал b». » для бинарных данных.

Так как str и bytes не могут быть смешаны, вы всегда должны их явно преобразовывать. Используйте str.encode(), чтобы перейти от str к bytes и bytes.decode(), чтобы перейти от bytes к str. Вы также можете использовать bytes(s, encoding=. ) и str(b, encoding=. ), соответственно.

Как str, тип bytes неизменен. Существует отдельный изменяемый тип для двоичных данных, bytearray. Почти все функции, которые принимают bytes также принимают bytearray.

Все обратные косые черты в «сырых» строковых литералах интерпретируются буквально. Это означает, что «\U» и «\u» в сырых строках не рассматриваются особо. Например, r»\u20ac» это строка из 6 символов в Python 3.0, в то время как в 2.6, ur»\u20ac» был один символ «евро». (Конечно, это изменение влияет только на сырые строковые литералы).

Встроенный абстрактный тип basestring был удален. Используйте str вместо него. str и bytes не имеют достаточно общей функциональности, чтобы оправдать общий базовый класс. Инструмент 2to3 (см. ниже) заменяет каждое вхождение basestring на str.

PEP 3138: repr() для строки больше не экранирует символы, не входящие в набор ASCII. Однако, он по-прежнему экранирует управляющие символы

PEP 3120: Кодировка исходного кода по умолчанию теперь UTF-8.

PEP 3131: не-ASCII символы разрешены в идентификаторах. (Тем не менее, стандартная библиотека остается ASCII, за исключением имен авторов в комментариях.)

Модули StringIO и cStringIO удалены. Вместо этого, импортируйте модуль io и используйте io.StringIO или io.BytesIO для текста и данных соответственно.

Обзор изменений синтаксиса

Этот раздел дает краткий обзор каждого синтаксического изменения Python 3.0.

Новый синтаксис

PEP 3107: аннотации для аргументов функции и возвращаемых значений.

 , 'return': 9>

PEP 3102: Keyword-only аргументы.

PEP 3104: nonlocal. Переменная во внешней (но не глобальной) области видимости.

PEP 3132: Extended Iterable Unpacking

   Генераторы словарей: (то же самое, что и dict(stuff))

Литералы множеств (например, ). Заметьте, что <> — это пустой словарь. Используйте set() для пустых множеств. Генераторы множеств:

Новые восьмеричные литералы, например 0o720, вместо старых (0720).

Новые двоичные литералы, например 0b1010. Новая встроенная функция, bin().

Изменённый синтаксис

PEP 3109 and PEP 3134: новый синтаксис выражения raise: raise [expr [from expr]].

«as» и «with» зарезервированные слова.

«True» и «False» и «None» — зарезервированные слова.

Изменено «except exc, var» на «except exc as var».

PEP 3115: Новый синтаксис для метаклассов. Вместо:

Вы должны использовать:
Переменная __metaclass__ более не поддерживается.

Генераторы списков больше не поддерживают синтаксическую форму [. for var in item1, item2, . ]. Используйте [. for var in (item1, item2, . )].

Удаленный синтаксис

PEP 3113: распаковка кортежей в параметрах удалена. Вы больше не можете писать

Пишите
Удалены обратные кавычки (backtick). Используйте repr().

exec — функция. Перестала быть зарезервированным словом.

from module import * запрещено использовать внутри функций.

Встроенные функции

PEP 3135: Новый super(). Теперь вы можете вызывать super() без аргументов и (при условии, что это метод экземпляра, определенный внутри определении класса) класс и экземпляр будут автоматически выбраны. С аргументами, поведение super() остается без изменений.

PEP 3111: raw_input() переименован в input(). Вместо input() в Python 2, вы можете использовать eval(input()).

Добавлена функция next(), вызывающая метод __next__() объекта.

Перемещен intern() в sys.intern().

Удалено: apply(). Вместо apply(f, args) используйте f(*args).

Удалено: callable(). Вместо callable(f) используйте hasattr(f, «__call__»). Функция operator.isCallable() также удалена.

Удалено: execfile(). Вместо execfile(fn) используйте exec(open(fn).read()).

Удалено: file. Используйте open().

Перемещено: reduce() в functools.reduce()

Перемещено: reload() в imp.reload().

Удалено: dict.has_key(). Используйте оператор in.

Для вставки кода на Python в комментарий заключайте его в теги

  • Модуль csv - чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ
  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов
  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

Python 2 и 3 — отличия. Функция print

Статья рассказывает, в чём разница между Python 2 и 3. Приводятся сравнительные примеры кода, показываются особенности работы функции print. Даются советы, какую версию выбрать и почему.

О том, что официальная поддержка «Пайтон» 2 скоро прекратится, было объявлено уже давно. Но это не помешало выпустить Python 2.7.18 в апреле 2020 года. Тогда же разработчики утверждали, что это точно последний релиз, поэтому всем рекомендуется переходить на 3-ю версию. Сложно предсказать будущее, но очевидно одно: в противостоянии «Пайтон» 3 vs 2 — более перспективным направлением для развития является именно номер три.

Есть ещё несколько причин остановить свой выбор на «Питоне» 3.x.x: • официальная поддержка сообществом; • более простое изучение (это мнение субъективно, но некоторые его высказывают); • мощнейший инструментарий, множество библиотек; • применимость в машинном обучении и AI, плюс язык используется при обработке больших данных (Big Data).

Главной причиной должно стать то, что «Питон» 2 сегодня является устаревшей версией. Несмотря на это, списывать в утиль его ещё рано: • если вы DevOps-инженер, надо разбираться в конфигурации инструментов управления типа Ansible или Puppet. То есть пригодится умение работать с двумя версиями «Пайтона»; • если большинство проектов в компании реализовано с помощью «Пайтон» 2, знать эту версию тоже необходимо; • если при реализации проекта, требуемые сторонние библиотеки или софт не поддерживаются Python 3, опять же, единственным вариантом остаётся «Пайтон» 2.

Python 2 vs 3

В таблице ниже кратко представлены некоторые отличия и разница версий (2 vs 3):

Screenshot_1-1801-06e0aa.png

В результате можно сказать, что языки отличаются следующим: • синтаксис в 3-м «Питоне» проще и понятнее для понимания; • по дефолту, чтобы хранить строки, применяется Unicode, а в Python 2 строковое значение нужно определять посредством "u"; • в третьей ветви языка значения переменных не меняются никогда, а во второй они меняются в случае применения внутреннего цикла for; • в Python 3 исключения помещают в круглые скобки, а в Python 2 они должны быть заключены в notations; • упрощены правила очереди для сравнений; • в Python 3 для итераций есть функция range() , а в Python 2 применяется xrange() .

Модуль future

При разработке 3-й версии «Питона» в язык были включены некоторые ключевые слова и функции, несовместимые с Python 2. Но это не значит, что ими нельзя воспользоваться. Если требуется поддержка Python-кода 3-й версии, можно выполнить импорт, для чего существует встроенный модуль future.

Вот как выглядит импорт функциональности, поддерживающей деление целых чисел:

Screenshot_2-1801-de59c1.png

Прочие детали по модулю future можно посмотреть на странице ниже:

Screenshot_3-1801-fe1934.png

Сравниваем код. Функция print

Лучше всего рассматривать разницу наглядно. Для этого подойдёт простейший код. Начнём с Python 2:

 
def main(): print "Hello, OTUS!" if __name__== "__main__": main()

А теперь «Пайтон» 3:

 
def main(): print("Hello, OTUS!") if __name__== "__main__": main()

Самое заметное отличие — это изменение синтаксиса print. Используемый ранее оператор print заменили функцией print() . В результате объект вывода надо теперь обязательно заключать в скобки. И если в старом «Питоне» проблемы с дополнительными скобками «in print» отсутствуют, то в новом, в случае вызова print прежним способом, возникнет SyntaxError. Чтобы всё это проверить, совсем необязательно устанавливать у себя сразу два «Пайтона». Можно воспользоваться онлайн-компилятором (можно найти компилятор и для двойки, и для тройки). Есть и другие различия, но они выходят за рамки данной статьи.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *