Ответ
Python 3 является современным стандартом и не имеет обратной совместимости с Python 2 из-за ряда фундаментальных улучшений. Python 2 официально не поддерживается с 1 января 2020 года.
Ключевые различия:
-
Функция
printВ Python 2printбыл оператором, а в Python 3 стал функцией, что требует использования скобок. Это делает его более гибким (например, позволяет перенаправлять вывод).# Python 2 print "Hello, World!" # Python 3 print("Hello, World!") -
Деление целых чисел В Python 2 деление двух целых чисел (
/) приводило к целочисленному делению (отбрасыванию остатка). В Python 3 оператор/всегда выполняет деление с плавающей точкой. Для целочисленного деления используется оператор//.# Python 2 print 5 / 2 # Вывод: 2 # Python 3 print(5 / 2) # Вывод: 2.5 print(5 // 2) # Вывод: 2 -
Обработка строк (Unicode) Это одно из самых важных изменений. В Python 2 строки по умолчанию были ASCII (
str), а для Unicode использовался отдельный типunicode. В Python 3 все строки (str) по умолчанию являются Unicode (UTF-8), а для бинарных данных используется типbytes. -
Функция
range()В Python 2range()создавал в памяти полный список чисел, что было неэффективно для больших диапазонов. Для создания итератора использовалсяxrange(). В Python 3 функцияrange()была переработана и теперь работает какxrange()из Python 2, возвращая итератор, аxrange()был удален. -
Синтаксис исключений Синтаксис для перехвата исключений был изменен и стал более явным.
# Python 2 except Exception, e: # Python 3 except Exception as e: