Py+
💻 For developers

Python: Next Level

Functions, files, errors, OOP, and final projects — the sequel to «Python From Scratch»

What you'll build
📘A solid foundation
Practice in the browser
🎯Mini-projects
🎓Course certificate
📘 58 lessons1-2 evenings🎓 Advanced
🎯 Mission
Master Python: Next Level
+630XP
🏆CertificatePDF
🎓Course complete
Progress0 / 58 · 0%
Next up: Что такое функция и зачем она нужна

Course program

01

Функции

0 / 12 lessons
  1. 01

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0 / 10 lessons
  1. 13

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    JSON в файл — dump и load

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

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

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

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

0 / 8 lessons
  1. 23

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ООП

0 / 14 lessons
  1. 31

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0 / 8 lessons
  1. 45

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

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

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

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

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

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

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

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

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

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

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

    math.factorial(n)math.floor / math.ceilmath.gcd для нод⚡ +10
    Open
  7. 51

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

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

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

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

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

0 / 6 lessons
  1. 53

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

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

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

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

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

    Класс с методами add / save / loadJSON для сохраненияЦикл по записям⚡ +10
    Open
  4. 56

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

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

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

    Два класса: Book и Library__str__ для BookПоиск по полю автора⚡ +10
    Open
  6. 58

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

    Класс TodoAppJSON для постоянстваВсе приёмы вместе
    Course complete
    Open
Python: Next Level — online coding course