Py+
💻 Для разработчиков

Python: следующий уровень

Функции, файлы, ошибки, ООП и финальные проекты — продолжение «Python с нуля»

Что ты создашь
📘Прочный фундамент
⚡Практика в браузере
🎯Мини-проекты
🎓Сертификат курса
📘 58 уроков⏱ 1-2 вечера🎓 Продвинутый
🎯 Цель
Освоить Python: следующий уровень
⚡+630XP
🏆СертификатPDF
🎓Курс пройден
Прогресс0 / 58 · 0%
Следующий шаг: Что такое функция и зачем она нужна

Программа курса

01

Функции

0 / 12 уроков
⌄
  1. 01

    Что такое функция и зачем она нужна

    def — объявить функцию•имя() — вызвать•Повторное использование кода⚡ +10
    ▶ Сейчас
  2. 02

    Параметры — передаём данные внутрь

    def f(name):•Параметр и аргумент•Доступ внутри функции⚡ +10
    Открыт
  3. 03

    Несколько параметров

    def f(a, b)•Порядок имеет значение•Запятая между параметрами⚡ +10
    Открыт
  4. 04

    return — возвращаем результат

    return значение•Можно сохранить в переменную•Без return функция возвращает None⚡ +10
    🔒 Pro
  5. 05

    Параметры по умолчанию

    def f(x=10)•Можно вызвать без аргумента•Сначала обязательные, потом с дефолтом⚡ +10
    🔒 Pro
  6. 06

    Именованные аргументы

    f(name=...)•Порядок не важен•Удобно для длинных списков параметров⚡ +10
    🔒 Pro
  7. 07

    Локальные и глобальные переменные

    Внутри функции — локальная•Снаружи — глобальная•Локальная не видна снаружи⚡ +10
    🔒 Pro
  8. 08

    *args — переменное число аргументов

    def f(*args)•args — это кортеж•Передавай сколько хочешь⚡ +10
    🔒 Pro
  9. 09

    **kwargs — именованные аргументы пакетом

    def f(**kwargs)•kwargs — это словарь•Гибкие настройки⚡ +10
    🔒 Pro
  10. 10

    Лямбды — функция в одной строке

    lambda x: ...•Безымянная функция•Когда нужна на одно действие⚡ +10
    🔒 Pro
  11. 11

    Рекурсия — функция вызывает сама себя

    Базовый случай•Шаг вглубь•Без базы — бесконечность⚡ +10
    🔒 Pro
  12. 12

    Мини-проект: библиотека функций для калькулятора

    4 функции с return•Использование подряд•Параметры по умолчанию⚡ +10
    🔒 Pro
02

Файлы и ввод-вывод

0 / 10 уроков
⌄
  1. 13

    Файлы — что это и зачем

    open(имя, режим)•Запись в "w"•Закрытие файла⚡ +10
    🔒 Pro
  2. 14

    with — безопасное открытие и автозакрытие

    with open(...) as f:•Тело — с отступом 4 пробела•Закрытие гарантируется⚡ +10
    🔒 Pro
  3. 15

    Чтение всего файла — read()

    Режим "r"•f.read() → одна большая строка•Печать содержимого⚡ +10
    🔒 Pro
  4. 16

    Чтение по строкам — for line in file

    for line in f:•Каждая строка отдельно•rstrip() убирает \n⚡ +10
    🔒 Pro
  5. 17

    Запись "w" — перезаписываем файл

    Режим "w" стирает старое•writelines для списка•Перенос строки добавь сам⚡ +10
    🔒 Pro
  6. 18

    Дозапись "a" — добавляем в конец

    Режим "a" не стирает•Добавляет в конец•Удобно для логов⚡ +10
    🔒 Pro
  7. 19

    encoding="utf-8" — кириллица и эмодзи без проблем

    По умолчанию — системная кодировка•encoding="utf-8" универсальный•Без неё бывают «кракозябры»⚡ +10
    🔒 Pro
  8. 20

    JSON — словарь ↔ строка

    json.dumps(data)•json.loads(text)•Удобно для обмена данными⚡ +10
    🔒 Pro
  9. 21

    JSON в файл — dump и load

    json.dump(data, f) — без s•json.load(f) — без s•Файл-объект, не строка⚡ +10
    🔒 Pro
  10. 22

    Мини-проект: сохраняем заметки в JSON

    Список словарей•json.dump в файл•json.load обратно⚡ +10
    🔒 Pro
03

Ошибки и исключения

0 / 8 уроков
⌄
  1. 23

    Что такое исключение

    Ошибка во время выполнения•Программа падает с трейсбэком•Встроенные типы ошибок⚡ +10
    🔒 Pro
  2. 24

    try / except — ловим ошибку

    try: рискованный код•except: что делать при ошибке•Программа НЕ падает⚡ +10
    🔒 Pro
  3. 25

    Несколько типов в одном except

    except (A, B):•Несколько вариантов•Кортеж типов в скобках⚡ +10
    🔒 Pro
  4. 26

    else — выполнить ТОЛЬКО если ошибки не было

    try: пробуем•except: ловим•else: всё прошло хорошо⚡ +10
    🔒 Pro
  5. 27

    finally — выполнится ВСЕГДА

    Сработает после try/except/else•Даже при возврате из функции•Полезно для очистки ресурсов⚡ +10
    🔒 Pro
  6. 28

    raise — кидаем свою ошибку

    raise ValueError("...")•Когда входные данные плохие•Сигнализируем «дальше нельзя»⚡ +10
    🔒 Pro
  7. 29

    Свой класс исключения

    class MyError(Exception):•Понятное имя для бизнес-ошибки•raise + except как обычно⚡ +10
    🔒 Pro
  8. 30

    Мини-проект: безопасный калькулятор

    Функция с try/except•raise для бизнес-правил•Понятные сообщения⚡ +10
    🔒 Pro
04

ООП

0 / 14 уроков
⌄
  1. 31

    Что такое класс и объект

    class — шаблон•Объект — конкретный экземпляр•Создание через имя()⚡ +10
    🔒 Pro
  2. 32

    __init__ и self — конструктор объекта

    __init__ запускается автоматически•self — это сам объект•self.attr = ... сохраняет в объекте⚡ +10
    🔒 Pro
  3. 33

    Несколько атрибутов

    Несколько self.x = ...•Каждый объект — со своим набором•Запятые между параметрами __init__⚡ +10
    🔒 Pro
  4. 34

    Методы — функции внутри класса

    def method(self)•Вызов через объект.метод()•Можно использовать self.x внутри⚡ +10
    🔒 Pro
  5. 35

    __str__ — красивый вывод объекта

    По умолчанию — техническая запись•def __str__(self) → строка•print() и f-строка вызывают его⚡ +10
    🔒 Pro
  6. 36

    Список объектов — работаем с коллекцией

    Объекты можно класть в список•Цикл for по списку•Доступ к атрибуту каждого⚡ +10
    🔒 Pro
  7. 37

    Метод, меняющий состояние объекта

    self.attr = ... в методе•Объект «помнит» изменения•Несколько методов на одном объекте⚡ +10
    🔒 Pro
  8. 38

    Атрибуты класса — общие для всех экземпляров

    Объявляются СРАЗУ внутри class•Без self•Доступ через ClassName.attr или self.attr⚡ +10
    🔒 Pro
  9. 39

    Приватные атрибуты — соглашение _underscore

    _имя — «не трогай извне»•Не настоящая защита, договорённость•Доступ через метод⚡ +10
    🔒 Pro
  10. 40

    Наследование — class Cat(Animal)

    Дочерний класс получает методы родителя•class Child(Parent):•Бесплатно — что есть у родителя⚡ +10
    🔒 Pro
  11. 41

    super() — расширяем конструктор родителя

    super().__init__(...)•Сначала родительский __init__•Потом свои self.x = ...⚡ +10
    🔒 Pro
  12. 42

    Переопределение методов

    Дочерний класс может перезаписать метод родителя•Имя то же — поведение другое•Полиморфизм⚡ +10
    🔒 Pro
  13. 43

    Композиция — объект внутри объекта

    Атрибут может быть объектом•Доступ через цепочку точек•Альтернатива наследованию⚡ +10
    🔒 Pro
  14. 44

    Мини-проект: банковский счёт

    Класс с методами и состоянием•raise при ошибке•__str__ для красивого вывода⚡ +10
    🔒 Pro
05

Модули и стандартная библиотека

0 / 8 уроков
⌄
  1. 45

    Что такое модуль и зачем он нужен

    import math и др.•Доступ через math.pi / math.sqrt•Стандартная библиотека⚡ +10
    🔒 Pro
  2. 46

    from ... import ... — берём только нужное

    from модуль import имя•Без префикса в коде•Несколько имён через запятую⚡ +10
    🔒 Pro
  3. 47

    as — даём модулю короткое имя

    import имя as короткое•Полезно для длинных имён•Конвенции вроде np / pd⚡ +10
    🔒 Pro
  4. 48

    random — случайные числа

    randint(a, b) — целое в диапазоне•choice(list) — случайный элемент•Каждый запуск даёт разное⚡ +10
    🔒 Pro
  5. 49

    datetime — дата и время

    from datetime import datetime•datetime.now() — текущий момент•Атрибуты .year .month .day⚡ +10
    🔒 Pro
  6. 50

    math — продвинутые функции

    math.factorial(n)•math.floor / math.ceil•math.gcd для нод⚡ +10
    🔒 Pro
  7. 51

    collections.Counter — счётчик из коробки

    from collections import Counter•Counter(данные) — частоты•.most_common(N) — топ-N⚡ +10
    🔒 Pro
  8. 52

    Мини-проект: генератор пароля

    random.choices с k•Соединение через .join•Длина — параметр функции⚡ +10
    🔒 Pro
06

Финальные мини-проекты

0 / 6 уроков
⌄
  1. 53

    Проект: TODO-список с приоритетами

    Список словарей•Функции add_task / show_tasks•Сортировка по приоритету⚡ +10
    🔒 Pro
  2. 54

    Проект: конвертер валют

    Курсы как словарь•Функция convert через USD•Раунд округление⚡ +10
    🔒 Pro
  3. 55

    Проект: дневник заметок в JSON

    Класс с методами add / save / load•JSON для сохранения•Цикл по записям⚡ +10
    🔒 Pro
  4. 56

    Проект: «Угадай число»

    random + while•Список попыток•Подсказки больше / меньше⚡ +10
    🔒 Pro
  5. 57

    Проект: учёт книг в библиотеке

    Два класса: Book и Library•__str__ для Book•Поиск по полю автора⚡ +10
    🔒 Pro
  6. 58

    Финал: ToDo-менеджер с сохранением

    Класс TodoApp•JSON для постоянства•Все приёмы вместе
    Курс пройден
    🔒 Pro