Антон Ларичев
Python с нуля: дорожная карта для начинающих
Python — один из самых популярных языков программирования в мире. Он используется в веб-разработке, анализе данных, машинном обучении, автоматизации и скриптинге. Благодаря читаемому синтаксису и обширной экосистеме Python стал главным выбором для тех, кто начинает путь в программировании.
Эта статья — структурированная дорожная карта: что изучать, в каком порядке и зачем.
Шаг 1. Установка и настройка окружения
Перед написанием первой строки кода нужно настроить инструменты.
Установка Python
Скачайте актуальную версию Python с официального сайта. При установке на Windows обязательно поставьте галочку Add Python to PATH.
Проверка установки:
python --version
# Python 3.12.3
Выбор редактора кода
Для начала подойдёт VS Code с расширением Python. Альтернатива — PyCharm Community Edition, который заточен специально под Python и содержит встроенный отладчик.
Виртуальные окружения
Привыкайте к работе с виртуальными окружениями с самого начала — они изолируют зависимости проекта от системного Python.
# Создание окружения
python -m venv venv
# Активация (Linux/macOS)
source venv/bin/activate
# Активация (Windows)
venv\Scripts\activate
# Установка пакета
pip install requests
Следующий шаг — Научиться программировать на Python, чтобы применить знания на реальных проектах.
Курс по теме
Научиться программировать на Python
40 000+ студентов · рейтинг 4.8 · гарантия возврата 30 дней
Шаг 2. Базовый синтаксис
Начните с основ языка. Этот этап закладывает фундамент для всего дальнейшего.
Переменные и типы данных
Python — язык с динамической типизацией. Тип переменной определяется в момент присваивания значения.
# Числа
age = 25
price = 9.99
# Строки
name = "Антон"
greeting = f"Привет, {name}!"
# Булевый тип
is_active = True
# Проверка типа
print(type(age)) # <class 'int'>
print(type(price)) # <class 'float'>
print(type(name)) # <class 'str'>
Условные конструкции
score = 85
if score >= 90:
grade = "отлично"
elif score >= 70:
grade = "хорошо"
else:
grade = "удовлетворительно"
print(f"Оценка: {grade}")
Циклы
# Цикл for — перебор элементов
fruits = ["яблоко", "банан", "вишня"]
for fruit in fruits:
print(fruit)
# Цикл while — выполнение по условию
counter = 0
while counter < 5:
print(counter)
counter += 1
# range() для числовых последовательностей
for i in range(1, 6):
print(i) # 1, 2, 3, 4, 5
Шаг 3. Структуры данных
Четыре встроенные структуры данных — это инструменты, которыми вы будете пользоваться ежедневно.
Список (list)
Упорядоченная изменяемая коллекция.
students = ["Анна", "Борис", "Вера"]
students.append("Григорий") # добавить в конец
students.insert(1, "Дмитрий") # вставить по индексу
students.remove("Борис") # удалить по значению
print(students[0]) # Анна
print(students[-1]) # последний элемент
print(students[1:3]) # срез
Словарь (dict)
Коллекция пар ключ-значение.
user = {
"name": "Антон",
"age": 30,
"email": "anton@example.com"
}
print(user["name"]) # Антон
print(user.get("phone", "нет")) # нет (значение по умолчанию)
user["city"] = "Москва" # добавить ключ
del user["age"] # удалить ключ
# Перебор
for key, value in user.items():
print(f"{key}: {value}")
Кортеж (tuple) и множество (set)
# Кортеж — неизменяемый список
coordinates = (55.7558, 37.6173)
lat, lon = coordinates # распаковка
# Множество — уникальные элементы
tags = {"python", "backend", "python", "api"}
print(tags) # {'python', 'backend', 'api'} — дубликат удалён
Шаг 4. Функции
Функции позволяют переиспользовать код и разбивать программу на логические блоки.
def greet(name, greeting="Привет"):
"""Возвращает строку приветствия."""
return f"{greeting}, {name}!"
print(greet("Антон")) # Привет, Антон!
print(greet("Мария", "Добрый день")) # Добрый день, Мария!
Аргументы args и *kwargs
def total(*numbers):
return sum(numbers)
print(total(1, 2, 3, 4)) # 10
def create_profile(**fields):
return fields
profile = create_profile(name="Антон", role="разработчик", level="senior")
print(profile) # {'name': 'Антон', 'role': 'разработчик', 'level': 'senior'}
Лямбда-функции
double = lambda x: x * 2
print(double(5)) # 10
numbers = [3, 1, 4, 1, 5, 9, 2]
sorted_numbers = sorted(numbers, key=lambda x: -x) # по убыванию
print(sorted_numbers) # [9, 5, 4, 3, 2, 1, 1]
Шаг 5. Работа с файлами и исключениями
Чтение и запись файлов
# Запись
with open("notes.txt", "w", encoding="utf-8") as file:
file.write("Первая заметка\n")
file.write("Вторая заметка\n")
# Чтение
with open("notes.txt", "r", encoding="utf-8") as file:
for line in file:
print(line.strip())
Конструкция with автоматически закрывает файл после работы — используйте её всегда.
Обработка исключений
def divide(a, b):
try:
result = a / b
except ZeroDivisionError:
print("Ошибка: деление на ноль")
return None
except TypeError as e:
print(f"Ошибка типа: {e}")
return None
else:
return result
finally:
print("Операция завершена")
print(divide(10, 2)) # 5.0
print(divide(10, 0)) # сообщение об ошибке, None
Шаг 6. Объектно-ориентированное программирование
ООП — обязательный навык для работы с реальными проектами.
class Animal:
def __init__(self, name, sound):
self.name = name
self.sound = sound
def speak(self):
return f"{self.name} говорит: {self.sound}"
def __repr__(self):
return f"Animal(name={self.name!r})"
class Dog(Animal):
def __init__(self, name):
super().__init__(name, "Гав")
def fetch(self, item):
return f"{self.name} приносит {item}"
dog = Dog("Шарик")
print(dog.speak()) # Шарик говорит: Гав
print(dog.fetch("мяч")) # Шарик приносит мяч
Свойства и инкапсуляция
class BankAccount:
def __init__(self, balance=0):
self._balance = balance # protected по соглашению
@property
def balance(self):
return self._balance
def deposit(self, amount):
if amount <= 0:
raise ValueError("Сумма должна быть положительной")
self._balance += amount
def withdraw(self, amount):
if amount > self._balance:
raise ValueError("Недостаточно средств")
self._balance -= amount
account = BankAccount(1000)
account.deposit(500)
print(account.balance) # 1500
Шаг 7. Модули и пакеты
Python поставляется с богатой стандартной библиотекой. Изучите наиболее используемые модули.
import os
import json
import datetime
from pathlib import Path
# Работа с путями
project_dir = Path(".") / "src" / "data"
project_dir.mkdir(parents=True, exist_ok=True)
# Работа с JSON
data = {"users": [{"id": 1, "name": "Антон"}]}
json_string = json.dumps(data, ensure_ascii=False, indent=2)
print(json_string)
parsed = json.loads(json_string)
print(parsed["users"][0]["name"]) # Антон
# Дата и время
now = datetime.datetime.now()
print(now.strftime("%d.%m.%Y %H:%M")) # 26.07.2026 14:30
Шаг 8. Популярные сторонние библиотеки
После освоения стандартной библиотеки переходите к экосистеме PyPI.
requests — HTTP-запросы
import requests
response = requests.get("https://api.github.com/users/octocat")
if response.status_code == 200:
data = response.json()
print(data["name"]) # The Octocat
print(data["login"]) # octocat
else:
print(f"Ошибка: {response.status_code}")
Направления для дальнейшего изучения
Выбор библиотек зависит от направления:
- Веб-разработка: FastAPI, Django, Flask
- Анализ данных: pandas, numpy, matplotlib
- Машинное обучение: scikit-learn, PyTorch, TensorFlow
- Автоматизация: selenium, playwright, pyautogui
- Парсинг: BeautifulSoup, scrapy
Шаг 9. Первые реальные проекты
Теория закрепляется только практикой. Вот список проектов по уровню сложности:
Начальный уровень
- Конвертер валют через API
- Генератор паролей
- To-do список с сохранением в файл
- Калькулятор с историей операций
Средний уровень
- Парсер новостного сайта
- Telegram-бот для напоминаний
- REST API на FastAPI
- Скрипт автоматизации работы с файлами
Продвинутый уровень
- Веб-приложение с базой данных
- CLI-инструмент для публикации в npm/PyPI
- Дашборд с визуализацией данных
Шаг 10. Хорошие практики с первого дня
Привычки, которые сделают ваш код профессиональным:
# 1. Аннотации типов
def calculate_discount(price: float, percent: int) -> float:
return price * (1 - percent / 100)
# 2. Списковые включения вместо циклов
scores = [85, 92, 78, 95, 60]
passing = [s for s in scores if s >= 70]
# 3. f-строки для форматирования
name = "Антон"
age = 30
print(f"{name} ({age} лет)")
# 4. Распаковка
first, *rest = [1, 2, 3, 4, 5]
print(first) # 1
print(rest) # [2, 3, 4, 5]
# 5. Именованные константы вместо магических чисел
MAX_RETRY_COUNT = 3
DEFAULT_TIMEOUT = 30
Типичные ошибки новичков
Изучение без практики. Читать книги и смотреть видео недостаточно — код нужно писать каждый день, даже если это 20 минут.
Пропуск отладки. Умение читать traceback и пользоваться отладчиком (pdb или встроенным в IDE) сэкономит часы работы.
Игнорирование документации. Официальная документация Python — лучший источник. Привыкайте обращаться к ней напрямую, а не только к ответам на Stack Overflow.
Попытка выучить всё сразу. Выберите одно направление (веб, данные, автоматизация) и идите в глубину, а не в ширину.
Примерный план по неделям
| Недели | Темы |
|---|---|
| 1–2 | Установка, синтаксис, типы данных, операторы |
| 3–4 | Условия, циклы, функции |
| 5–6 | Структуры данных (list, dict, tuple, set) |
| 7–8 | Файлы, исключения, модули |
| 9–11 | ООП: классы, наследование, полиморфизм |
| 12–14 | Стандартная библиотека, внешние пакеты |
| 15+ | Первый реальный проект по выбранному направлению |
Эти сроки ориентировочные — важнее последовательность, чем скорость.
Ресурсы для изучения
Помимо курсов, используйте:
- docs.python.org — официальная документация с Tutorial
- repl.it или Python Tutor — запуск кода в браузере без установки
- Codewars / LeetCode — задачи для тренировки алгоритмического мышления
- GitHub — читайте код популярных open-source проектов на Python
Чтобы ускорить прохождение этой дорожной карты и получить структурированную обратную связь от практикующих разработчиков, пройдите курс на PurpleSchool: Курс по Python на PurpleSchool
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

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