Олег Марков
Что нового в Python 3
Введение
Переход от Python 2 к Python 3 стал одним из самых значимых изменений в экосистеме языка за последние годы. Новая ветка принесла изменения в базовые типы, семантику операторов и набор стандартных инструментов, что повлияло на стиль написания кода и совместимость библиотек. В этой статье мы разберемся
Что нового в Python 3
Переход на Python 3 — это не просто набор новых возможностей, это приведение языка к более предсказуемому и современному набору правил. Ниже перечислены самые важные изменения, о которых нужно знать при разработке и поддержке проектов.
1. Unicode по умолчанию
В Python 3 строковый тип str хранит текст в Unicode по умолчанию, что устраняет необходимость разделять «байтовые» и «текстовые» строки так, как это было в Python 2. Байтовые последовательности теперь представлены явно типом bytes.
text = "Привет, мир"
print(type(text)) # <class 'str'>
data = b"binary data"
print(type(data)) # <class 'bytes'>Такой подход снижает число скрытых ошибок при работе с кодировками и делает работу с текстом более предсказуемой.
2. Изменение семантики деления
Оператор / теперь всегда возвращает число с плавающей точкой, а оператор // служит для целочисленного деления. Это делает поведение арифметики более однозначным.
print(5 / 2) # 2.5
print(5 // 2) # 23. print — функция
print стал функцией, что унифицирует синтаксис и облегчает передачу параметров форматирования напрямую.
print("a", "b", sep="-", end="\n")4. Итераторы вместо списков
Функции range, map, filter и другие возвращают итераторы, а не списки, что экономит память при работе с большими объёмами данных.
r = range(10)
print(type(r)) # <class 'range'>
for i in r:
print(i)5. Форматирование строк: f-строки
С версии 3.6 появились f-строки — удобный и производительный способ форматирования строк.
name = "Иван"
print(f"Привет, {name}")6. Асинхронность и asyncio
Встроенная библиотека asyncio предоставила официальные средства для написания асинхронного кода в стиле async/await, что упростило создание конкурентных сетевых приложений и сервисов.
import asyncio
async def hello():
await asyncio.sleep(1)
print("done")
asyncio.run(hello())Для тех, кто хочет не только прочитать об asyncio, но и научиться применять асинхронный подход в реальных проектах, полезно пройти системное обучение. Если вы хотите детальнее погрузиться в Python — приходите на наш курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажеры для безлимитной практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.
Обновления и новые модули стандартной библиотеки
Python 3 расширил стандартную библиотеку современными инструментами. Ниже список наиболее заметных компонентов и короткие примеры их применения.
pathlib— объектная работа с путями файловой системы.
from pathlib import Path
p = Path("docs")
for file in p.iterdir():
print(file.name)enum— безопасные перечисления.
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2typing— статическая аннотация типов и совместимость с инструментами проверки типов.
from typing import List
def greet(names: List[str]) -> None:
for n in names:
print(f"Hello, {n}")- Улучшенные инструменты для работы с процессами, сетью и сериализацией.
Совместимость библиотек
Новые версии языка иногда требуют обновлённой версии сторонних библиотек. Для разработки и тестирования сочетайте актуальную версию Python с виртуальными окружениями и инструментами управления зависимостями, чтобы избежать конфликтов.
python -m venv venv
source venv/bin/activate # macOS / Linux
venv\Scripts\activate # Windows
pip install -r requirements.txtЧастые ошибки при переходе на Python 3
- Попытка использовать
printбез скобок. - Ошибки при работе со строками и байтами (непреобразованные
bytesкstr). - Ожидание списка от
range()илиmap()вместо итератора. - Неправильное использование деления
/в местах, где ожидается целое число.
Частозадаваемые вопросы
Как проверить установленную версию Python
python --versionСтоит ли начинать обучение на Python 3 Да, все современные материалы, библиотеки и инструменты ориентированы на Python 3.
Как обеспечить совместимость с библиотеками
Проверяйте требования в документации, используйте pip и виртуальные окружения, применяйте pyproject.toml или requirements.txt для фиксации версий.
Заключение
Python 3 изменил язык в сторону предсказуемости и удобства: унификация строк, новый подход к арифметике, улучшенные средства форматирования и расширение стандартной библиотеки сделали язык более пригодным для современных задач. Переход требует внимания к совместимости, но преимущества перевешивают затраты на миграцию.
Для системного освоения всех нововведений и практики с настоящими задачами рекомендую пройти курс Основы Python. В курсе подробно разбираются темы установки, типы данных, функции, работа с файлами и обработка ошибок. В первых 3 модулях уже доступно бесплатное содержание, которое поможет начать применять знания сразу после чтения статьи.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев