Назад к вопросам
Junior
80
questionbank
В чем отличия между Python 2 и Python 3?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Основные отличия между Python 2 и Python 3:
-
Обработка строк:
- Python 2: Строки по умолчанию являются байтовыми (
str). Юникод представлен типомunicode. - Python 3: Строки по умолчанию являются юникодными (
str). Байтовые строки представлены типомbytes.
- Python 2: Строки по умолчанию являются байтовыми (
-
Оператор
print:- Python 2:
printявляется оператором, использующим ключевое слово. - Python 3:
printявляется функцией.
// Python 2 print "Hello, World!" // Python 3 print("Hello, World!") - Python 2:
-
Целочисленное деление:
- Python 2: Оператор
/выполняет целочисленное деление между целыми числами. - Python 3: Оператор
/выполняет "истинное" деление, возвращая число с плавающей точкой. Для целочисленного деления используется оператор//.
// Python 2 print 5 / 2 # Выводит 2 // Python 3 print(5 / 2) # Выводит 2.5 print(5 // 2) # Выводит 2 - Python 2: Оператор
-
Исключения:
- Python 2: Синтаксис
except exc, var:. - Python 3: Синтаксис
except exc as var:.
// Python 2 try: # Код, который может вызвать исключение pass except ValueError, e: print e // Python 3 try: # Код, который может вызвать исключение pass except ValueError as e: print(e) - Python 2: Синтаксис
-
Функция
range()иxrange():- Python 2:
range()возвращает список,xrange()возвращает генератор (итератор). - Python 3:
range()всегда возвращает генератор (итератор),xrange()отсутствует.
- Python 2:
-
Переименование некоторых модулей: Например,
httplibвhttp.client,urllib2вurllib.requestиurllib.error. -
Изменения в работе с dict.iterkeys(), dict.items() и dict.values():
- Python 2: Эти методы возвращают списки.
- Python 3: Эти методы возвращают итераторы-представления (views).
-
Классы нового стиля:
- Python 2: Необходимо явно наследовать от
objectдля создания классов нового стиля. - Python 3: Все классы по умолчанию являются классами нового стиля (неявно наследуют от
object).
- Python 2: Необходимо явно наследовать от
Многие изменения в Python 3 были направлены на улучшение согласованности, читаемости и производительности, а также на лучшее обращение с Юникодом.