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

Python Senior Без компании
Какие особенности и ограничения были в Python 2 по сравнению с более поздними версиями
Ответы
Python 2 устарел, но его ключевые отличия от Python 3: - **Принт без скобок**: ``` print "Hello" # Python 2 print("Hello") # Python 3 ``` - **Целочисленное деление**: В Python 2 `/` для целых чисел возвращало целое (если оба операнда целые), в Python 3 всегда float. - **Unicode vs str**: В Python 2 `str` — байты, `unicode` — Unicode-строка. В Python 3 `str` — Unicode, `bytes` — байты. - **xrange() vs range()**: В Python 2 `xrange()` — ленивый аналог `range()`. В Python 3 `range()` сам ленивый. - **Итераторы вместо списков**: Методы вроде `map()`, `filter()`, `dict.items()` в Python 2 возвращали списки, в Python 3 — итераторы. - **Исключения**: ``` except Exception, e: # Python 2 except Exception as e: # Python 3 ``` - **Сравнение типов**: В Python 2 можно было сравнивать разные типы (`1 < '2'`), в Python 3 это вызывает `TypeError`. - **Старый стиль классов**: В Python 2 были "старые" классы (без наследования от `object`), в Python 3 все классы "новые". - **input() и raw_input()**: В Python 2 `input()` выполнял строку как код, `raw_input()` читал строку. В Python 3 `input()` — аналог `raw_input()`. - **Отсутствие аннотаций и async/await**: Python 2 не поддерживал аннотации типов, асинхронные конструкции (`async`/`await`). Python 2 официально не поддерживается с 2020 года.