Junior
46
questionbank

В чем отличия между Python 2 и Python 3?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Основные отличия между Python 2 и Python 3:

  • Обработка строк:

    • Python 2: Строки по умолчанию являются байтовыми (str). Юникод представлен типом unicode.
    • Python 3: Строки по умолчанию являются юникодными (str). Байтовые строки представлены типом bytes.
  • Оператор print:

    • Python 2: print является оператором, использующим ключевое слово.
    • Python 3: print является функцией.
    python
  • Целочисленное деление:

    • Python 2: Оператор / выполняет целочисленное деление между целыми числами.
    • Python 3: Оператор / выполняет "истинное" деление, возвращая число с плавающей точкой. Для целочисленного деления используется оператор //.
    python
  • Исключения:

    • Python 2: Синтаксис except exc, var:.
    • Python 3: Синтаксис except exc as var:.
    python
  • Функция range() и xrange():

    • Python 2: range() возвращает список, xrange() возвращает генератор (итератор).
    • Python 3: range() всегда возвращает генератор (итератор), xrange() отсутствует.
  • Переименование некоторых модулей: Например, 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 3 были направлены на улучшение согласованности, читаемости и производительности, а также на лучшее обращение с Юникодом.