Встречается на собеседованиях • сегодня

Какие особенности и ограничения были в Python 2 по сравнению с более поздними версиями

Python 2 устарел, но его ключевые отличия от Python 3:

  1. Принт без скобок:

    python
    print "Hello"  # Python 2
    print("Hello")  # Python 3
  2. Целочисленное деление:
    В Python 2 / для целых чисел возвращало целое (если оба операнда целые), в Python 3 всегда float.

  3. Unicode vs str:
    В Python 2 str — байты, unicode — Unicode-строка. В Python 3 str — Unicode, bytes — байты.

  1. xrange() vs range():
    В Python 2 xrange() — ленивый аналог range(). В Python 3 range() сам ленивый.

  2. Итераторы вместо списков:
    Методы вроде map(), filter(), dict.items() в Python 2 возвращали списки, в Python 3 — итераторы.

  3. Исключения:

    python
    except Exception, e:  # Python 2
    except Exception as e:  # Python 3
  4. Сравнение типов:
    В Python 2 можно было сравнивать разные типы (1 < '2'), в Python 3 это вызывает TypeError.

  5. Старый стиль классов:
    В Python 2 были "старые" классы (без наследования от object), в Python 3 все классы "новые".

  6. input() и raw_input():
    В Python 2 input() выполнял строку как код, raw_input() читал строку. В Python 3 input() — аналог raw_input().

  7. Отсутствие аннотаций и async/await:
    Python 2 не поддерживал аннотации типов, асинхронные конструкции (async/await).

Python 2 официально не поддерживается с 2020 года.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы