Python с нуля: очень простыми словами

Курс для полного новичка: объясняем Python максимально простым языком и на маленьких шагах. Будет много коротких примеров и практики, чтобы закреплять каждый новый элемент.

1. Старт: установка Python, запуск кода и первые команды

Старт: установка Python, запуск кода и первые команды

В этой статье ты сделаешь три вещи:

  • Установишь Python
  • Проверишь, что он реально работает
  • Запустишь первые команды и первый файл с кодом
  • Мы будем делать всё максимально просто: нажал — проверил — получилось.

    Что такое Python (очень коротко)

    Python — это язык программирования.

  • Ты пишешь текст (команды) в файл
  • Python читает этот файл
  • И выполняет команды по порядку
  • Варианты: где писать и запускать код

    Есть два простых способа:

  • Командная строка (Терминал) — это место, где ты вводишь команды текстом
  • Редактор/среда — это программа, где удобно писать код в файле
  • Нормально начать с самого простого, а потом выбрать, что удобнее.

    Что выбрать новичку

    | Вариант | Плюсы | Минусы | Когда выбирать | |---|---|---|---| | IDLE (идёт вместе с Python) | Уже установлено | Выглядит старомодно | Хочешь самый простой старт | | Thonny | Очень дружелюбен к новичкам | Не такой мощный, как “взрослые” IDE | Хочешь максимально простую среду | | VS Code | Очень популярный, мощный | Нужно чуть больше настроек | Хочешь “как у разработчиков” |

    Ссылки:

  • Python (официальный сайт)
  • Thonny (официальный сайт)
  • Visual Studio Code (официальный сайт)
  • Установка Python

    Важно: ставь Python 3 (не Python 2).

    !Куда нажать в установщике Python на Windows

    Windows

  • Открой сайт Python Downloads.
  • Нажми Download Python 3.x.x.
  • Запусти установщик.
  • Обязательно поставь галочку Add python.exe to PATH.
  • Нажми Install Now и дождись окончания.
  • Если галочку не поставить — потом часто не запускается команда python в терминале. Это не “сломалось”, просто Windows не знает, где лежит Python.

    macOS

  • Открой Python Downloads.
  • Скачай установщик для macOS.
  • Установи как обычную программу.
  • На macOS уже может быть “старый python”, поэтому мы будем проверять версию после установки.

    Linux

    Обычно Python уже установлен. Проверим версию.

  • В Ubuntu/Debian часто помогает установка так:
  • Если у тебя другой дистрибутив Linux — команды могут отличаться.

    Проверка: Python установлен?

    Открой терминал.

  • Windows: можно найти Command Prompt (Командная строка) или PowerShell
  • macOS: приложение Terminal
  • Linux: приложение Terminal
  • Введи одну из команд ниже.

    Команда для проверки версии

    На Windows часто работает так:

    На macOS/Linux часто так:

    Иногда (особенно на Windows) работает:

    Правильный результат выглядит примерно так:

  • Python 3.12.1
  • Главное:

  • Цифра должна начинаться с 3
  • Первый запуск: режим “поговорить с Python”

    У Python есть режим, где ты вводишь команды по одной строке. Это удобно для первых шагов.

    Запуск:

  • Windows:
  • macOS/Linux:
  • Ты увидишь что-то похожее на >>>. Это значит: Python ждёт твою команду.

    Первые команды

    Введи это и нажми Enter:

    Python должен вывести:

  • Привет!
  • Попробуй ещё:

    Вывод должен быть:

  • 4
  • Ещё пример:

    Здесь:

  • name — это коробка с названием, в которую мы положили текст
  • = — положить значение в коробку
  • print(...) — показать на экране
  • Как выйти из этого режима

    Варианты:

  • Введи:
  • Или нажми Ctrl + Z, потом Enter (Windows)
  • Или нажми Ctrl + D (macOS/Linux)
  • Запуск кода из файла (самый важный навык)

    Режим >>> удобен, но обычно код пишут в файлах.

    Шаг 1: создай файл

    Создай папку, например python_start.

    Создай в ней файл hello.py.

    Важно:

  • Расширение должно быть .py
  • Имя файла лучше писать латиницей: hello.py, не привет.py
  • Шаг 2: напиши код

    Открой hello.py и вставь:

    Сохрани файл.

    Шаг 3: запусти файл

    Открой терминал в папке с файлом и запусти.

    Windows (часто так):

    macOS/Linux:

    Если всё хорошо, увидишь:

  • Привет из файла!
  • !Как файл с кодом превращается в результат

    Частые проблемы и очень простые решения

    Пишу python, а мне говорят “не найдено”

    Обычно это значит одно из двух:

  • Python не установлен
  • Python установлен, но команда не добавлена в PATH
  • Что делать:

  • На Windows попробуй py --version (часто работает даже когда python не работает)
  • Если всё равно не работает — переустанови Python и поставь галочку Add python.exe to PATH
  • Файл не запускается, потому что “не найден hello.py”

    Это почти всегда значит, что терминал открыт не в той папке.

    Проверь:

  • Файл hello.py точно лежит в этой папке
  • Ты запускаешь команду там же
  • Что запомнить из этой статьи

  • Python нужно установить и проверить версию
  • Есть два режима работы:
  • - по одной команде в >>> - запуск файла something.py
  • Самая первая полезная команда: print(...)
  • В следующей статье мы закрепим базовые вещи: строки, числа, переменные и простые ошибки, которые встречаются у всех новичков.

    2. Переменные и типы данных: числа, строки, логика

    Переменные и типы данных: числа, строки, логика

    В прошлой статье ты установил Python и научился запускать команды и файлы .py. Теперь сделаем следующий шаг: разберёмся, как хранить данные в программе.

    Если совсем просто:

  • данные — это числа, текст, правда/ложь
  • переменная — это “коробка с именем”, куда мы кладём данные
  • тип данных — это ответ на вопрос “что лежит в коробке: число или текст?”
  • Переменная: коробка с именем

    Переменная создаётся так:

    Читаем это так:

  • name — имя коробки
  • = — положить значение
  • "Миша" — то, что положили
  • Показать значение можно через print(...):

    !Переменная как коробка с именем, внутри которой лежит значение

    Как выбирать имена переменных

    Хорошие имена помогают не путаться.

  • Пиши латиницей: age, name, price
  • Используй понятные слова: user_name лучше, чем a1
  • Не используй зарезервированные слова Python, например print, type, if
  • Тип данных: что это вообще такое

    У каждого значения есть тип. Он говорит Python, как с этим значением работать.

    Самые базовые типы, которые нужны прямо сейчас:

  • int — целые числа: 1, 10, -5
  • float — числа с точкой: 3.14, 0.5, -2.0
  • str — строки (текст): "привет", "123"
  • bool — логика: True или False
  • Проверить тип можно функцией type(...):

    Если хочешь, можешь посмотреть официальную справку:

  • Функция type
  • Встроенные типы данных
  • Числа: int и float

    int — целые числа

    Важно заметить:

  • / почти всегда даёт результат типа float, даже если делится “ровно”
  • Например:

    float — числа с точкой

    В float иногда бывают “странные хвосты” из-за того, как компьютеры хранят дроби. Это нормально для начала. Позже научимся аккуратно округлять.

    Строки: str (текст)

    Строка — это текст в кавычках.

    Можно использовать и двойные, и одинарные кавычки. Главное — открыть и закрыть одинаковыми.

    Склеивание строк

    Строки можно складывать:

    Длина строки

    len(...) показывает, сколько символов в строке:

    Логика: bool (True и False)

    bool — это всего два значения:

  • True — правда
  • False — ложь
  • Пример:

    Часто bool появляется как результат сравнения:

    Важно:

  • == — это “равно?” (сравнение)
  • = — это “положить в переменную” (присваивание)
  • Самая частая ошибка новичка: смешал типы

    Python не любит, когда ты пытаешься делать “не то”. Например, складывать число и строку.

    Так нельзя:

    Будет ошибка, потому что age — число, а text — строка.

    Как сделать правильно: превратить число в строку с помощью str(...):

    Что запомнить из этой статьи

  • Переменная — это имя для значения: x = 10
  • Основные типы:
  • - int — целые числа - float — числа с точкой - str — текст - bool — правда/ложь
  • Узнать тип можно так: type(value)
  • = и == — это разные вещи
  • Дальше обычно учатся делать ветвления: если правда — делаем одно, иначе — другое. Для этого нам и пригодится bool.

    3. Условия и циклы: if, while, for на понятных примерах

    Условия и циклы: if, while, for на понятных примерах

    В прошлой статье мы разобрались с переменными и типами данных: числа (int, float), строки (str) и логика (bool). Теперь сделаем программу умнее:

  • Условия (if) помогают программе выбирать, что делать.
  • Циклы (while, for) помогают программе повторять действия.
  • Главная идея простая:

  • Сначала Python получает True или False.
  • Потом по этому ответу он либо делает кусок кода, либо пропускает его.
  • Условие if: “если правда — делай”

    if — это проверка.

    Шаблон:

    Важно:

  • После условия стоит :
  • Внутри блока есть отступ (обычно 4 пробела)
  • Пример:

    Здесь age >= 18 — это сравнение, оно даёт True или False.

    !Блок-схема показывает, что при True выполняется блок, при False — пропускается.

    else: “иначе”

    Если условие не выполнено, можно сделать другой вариант через else.

    elif: “иначе если”

    Если вариантов больше двух, используют elif.

    Python проверяет сверху вниз:

  • если первый if оказался True, остальные варианты уже не проверяются
  • если первый False, проверяется elif
  • если все выше False, срабатывает else
  • Сравнения: как получить True или False

    Часто в if стоят сравнения:

  • == равно?
  • != не равно?
  • > больше?
  • < меньше?
  • >= больше или равно?
  • <= меньше или равно?
  • Примеры:

    Важно не перепутать:

  • = — положить в переменную
  • == — сравнить
  • Отступы: это не “красота”, это смысл

    В Python отступы показывают, какой код относится к if, else, циклам.

    Правильно:

    Если отступы сделать неправильно, Python либо выдаст ошибку, либо будет работать не так, как ты ожидаешь.

    Цикл while: “пока правда — повторяй”

    while повторяет блок кода, пока условие True.

    Шаблон:

    Пример: счётчик

    Что здесь происходит:

  • count начинается с 1
  • пока count <= 5 — печатаем
  • увеличиваем count на 1
  • когда count станет 6 — условие будет False, цикл закончится
  • Частая проблема: бесконечный цикл

    Если забыть менять переменную, условие может всегда оставаться True.

    Пример плохого кода (не запускай надолго):

    Здесь count не меняется, поэтому цикл не закончится.

    Если ты случайно сделал бесконечный цикл в терминале:

  • обычно помогает Ctrl + C
  • break: “выйти из цикла прямо сейчас”

    Цикл мог бы быть бесконечным из-за while True, но break останавливает его.

    continue: “пропусти шаг и иди дальше”

    Здесь число 3 не напечатается, потому что на этом шаге сработает continue.

    Цикл for: “пройдись по каждому элементу”

    for удобен, когда надо пройтись по набору значений.

    Пример: пройти по списку

    Читается так: для каждого name в names сделай...

    range: получить последовательность чисел

    Очень часто for используют с range(...).

    Вывод будет:

  • 0
  • 1
  • 2
  • 3
  • 4
  • То есть range(5) даёт числа от 0 до 4.

    Если хочешь от 1 до 5:

    Здесь:

  • 1 — старт
  • 6 — конец (но 6 не включается)
  • Пример: посчитать сумму

    Что выбрать: if, while или for

    | Инструмент | Когда использовать | Простыми словами | |---|---|---| | if | нужно принять решение | “если так — делай это” | | while | повторяем, пока условие правда | “пока не закончится — повторяй” | | for | проходим по набору (список, range) | “для каждого элемента — сделай” |

    Частые ошибки новичка

  • Пишут if x = 10: вместо if x == 10:
  • Забывают двоеточие : после условия
  • Путаются в отступах
  • Делают while, но забывают менять переменную, и получается бесконечный цикл
  • Если хочешь посмотреть официальное объяснение (оно сложнее, но полезно со временем):

  • Python Tutorial: More Control Flow Tools
  • Что запомнить из этой статьи

  • if выполняет код, только если условие True
  • else — когда условие False, elif — когда вариантов несколько
  • Отступы в Python обязательны и меняют смысл программы
  • while повторяет, пока условие True
  • for проходит по элементам (например, список) или по числам из range(...)
  • break останавливает цикл, continue пропускает текущий шаг
  • 4. Коллекции: списки, словари, кортежи и множества

    Коллекции: списки, словари, кортежи и множества

    Раньше у нас были переменные, которые хранят одно значение: число, строку, True/False. Но в реальной жизни часто нужно хранить много значений сразу.

    Например:

  • список покупок: молоко, хлеб, яблоки
  • телефонная книга: имя → номер
  • набор уникальных тегов: без повторов
  • Для этого в Python есть коллекции (контейнеры для нескольких значений).

    В этой статье разберём 4 главных вида:

  • список list
  • словарь dict
  • кортеж tuple
  • множество set
  • !Схема, которая помогает увидеть разницу между типами коллекций

    Главное различие: что умеет коллекция

    Смотри на эту таблицу как на подсказку.

    | Коллекция | Как выглядит | Есть порядок? | Можно менять после создания? | Можно хранить повторы? | Для чего чаще всего | |---|---|---|---|---|---| | list | ["a", "b", "c"] | Да | Да | Да | хранить список дел, последовательность | | dict | { "ключ": "значение" } | Да (по добавлению) | Да | ключи без повторов | быстро находить значение по ключу | | tuple | (1, 2, 3) | Да | Нет | Да | зафиксированные данные | | set | {1, 2, 3} | Нет (как набор) | Да | нет повторов | уникальные значения, проверка "есть ли?" |

    Важно:

  • порядок значит, что есть “первый, второй, третий”
  • можно менять значит, что ты можешь добавить, удалить, заменить элементы
  • Список list: “коробка с элементами по порядку”

    Создание списка

    Список может хранить разные типы, но новичкам проще начинать с “один список — один тип”.

    Индексы: как взять элемент

    У элементов списка есть номера (они называются индексы). Нумерация начинается с 0.

    Частая ошибка новичка:

  • names[3] здесь нельзя, потому что элементов всего 3 (индексы 0, 1, 2)
  • тогда Python выдаст ошибку IndexError
  • Изменение элемента

    Список можно менять.

    Добавить элемент

    append(...) добавляет в конец.

    Удалить элемент

    Если такого элемента нет, будет ошибка. Поэтому иногда сначала проверяют in (будет ниже).

    Длина списка

    len(...) отвечает на вопрос: “сколько элементов?”

    Пройтись циклом for по списку

    Это связывает тему коллекций с прошлой статьёй про циклы.

    Словарь dict: “найди значение по ключу”

    Словарь хранит пары:

  • ключзначение
  • Пример: имя → возраст.

    Создание словаря

    Получить значение по ключу

    Если ключа нет, будет ошибка KeyError.

    Чтобы не падать, можно использовать get(...):

    Добавить или изменить

    Если ключа не было — добавится. Если был — значение заменится.

    Пройтись циклом по словарю

    Чаще всего нужны ключи и значения.

    items() даёт пары “ключ и значение”.

    Полезная проверка: есть ли ключ

    Кортеж tuple: “как список, но нельзя менять”

    Кортеж похож на список, но после создания его нельзя изменить.

    Создание кортежа

    Зачем он нужен

    Коротко и по делу:

  • когда данные должны оставаться такими, как есть
  • когда удобно хранить “пару” или “тройку” значений вместе
  • Например, координаты (x, y) или дата (год, месяц, день).

    Доступ по индексу есть

    А менять нельзя

    Так делать нельзя:

    Множество set: “только уникальные значения”

    Множество полезно, когда:

  • повторы не нужны
  • важно быстро проверить “есть ли элемент?”
  • Создание множества

    Важно:

  • в set нет понятного “первого” элемента, порядок может выглядеть случайным
  • к элементу нельзя обратиться по индексу: nums[0] не работает
  • Добавить элемент

    Повтор "red" не добавится второй раз.

    Быстрая проверка in

    in: одна из самых полезных проверок

    Оператор in работает с коллекциями и даёт True или False. Это напрямую связано с темой if.

    Как выбрать, что использовать

    Запомни эти простые правила:

  • нужен порядок и можно менятьlist
  • нужно “ключ → значение” → dict
  • нужен порядок, но нельзя менятьtuple
  • нужна уникальность и проверка “есть ли?” → set
  • Официальная документация (если захочешь позже)

  • Встроенные типы данных Python
  • Тип list
  • Тип dict
  • Тип set
  • Тип tuple
  • Что запомнить из этой статьи

  • Список: [ ], порядок есть, менять можно
  • Словарь: {ключ: значение}, искать удобно по ключу
  • Кортеж: ( ), как список, но менять нельзя
  • Множество: { } или set(), только уникальные элементы, порядок не важен
  • len(...) считает элементы
  • in проверяет “есть ли?” и даёт True или False
  • 5. Функции: как делить код на простые части

    Функции: как делить код на простые части

    Раньше мы писали код “прямо подряд”: переменные, if, циклы, списки и словари. Это нормально для маленьких примеров. Но как только программа становится чуть больше, появляется проблема: код повторяется, и в нём легко запутаться.

    Функция — это способ взять кусок кода, дать ему имя и запускать его по команде.

    Представь, что функция — это мини-программа внутри программы:

  • у неё может быть вход (данные)
  • она делает работу
  • у неё может быть выход (результат)
  • !Схема показывает, что функция может получать данные и возвращать результат

    Зачем нужны функции

    Функции почти всегда делают код:

  • короче (не копируем одно и то же)
  • понятнее (видно, за что отвечает каждый кусок)
  • удобнее для исправлений (поменял в одном месте — и везде стало правильно)
  • Как создать функцию

    Функция создаётся словом def.

    Шаблон:

    Важно:

  • после строки def ...: стоит :
  • внутри функции есть отступы, как в if и циклах
  • return возвращает результат (если он нужен)
  • Самый простой пример

    Здесь:

  • say_hello — имя функции
  • () — означает “вызвать функцию”
  • Параметры и аргументы (очень простыми словами)

  • параметры — это “переменные” в скобках при создании функции
  • аргументы — это реальные значения, которые мы передаём при вызове
  • Пример:

    Здесь:

  • name — параметр
  • "Миша" и "Аня" — аргументы
  • return: как получить результат из функции

    print(...) просто показывает на экране.

    return возвращает значение наружу, чтобы его можно было сохранить в переменную и использовать дальше.

    Пример:

    Частая путаница: print и return

    Сравни:

    Что будет:

  • функция напечатает 5
  • но value станет None, потому что ничего не вернули
  • Правильнее так:

    Что возвращает функция, если return нет

    Если внутри нет return, то функция возвращает None.

    None — это значение “ничего”.

    Функции и условия: делаем проверки аккуратно

    В прошлой теме мы делали if. Теперь можно спрятать проверку в функцию.

    Такую функцию удобно использовать в if:

    Функции и циклы: повторяем правильно

    Допустим, у нас список чисел, и мы хотим посчитать сумму.

    Здесь мы объединили темы:

  • список list
  • цикл for
  • функцию с return
  • Функции и словари: удобно доставать данные

    Допустим, есть словарь “имя → возраст”, и мы хотим безопасно получить возраст.

    Значения по умолчанию

    Иногда удобно, чтобы параметр имел значение “если ничего не передали”.

    Локальные переменные: что внутри функции, то внутри

    Переменные, созданные внутри функции, обычно живут только там.

    Это полезно: меньше шанс случайно испортить данные где-то в программе.

    Частые ошибки новичка

  • забыли скобки при вызове: написали greet вместо greet()
  • перепутали return и print
  • сделали неправильные отступы внутри функции
  • передали не то количество аргументов: функция ждёт два, а дали один
  • Мини-итог

    Функции — это способ делать код простым и аккуратным:

  • создаём функцией def имя(...):
  • передаём данные через параметры
  • получаем результат через return
  • используем функции вместе с if, for, list и dict
  • Если захочешь посмотреть официальную справку (она сложнее, но полезная):

  • Определение функций в учебнике Python
  • Оператор return
  • 6. Файлы, ошибки и отладка: читаем, пишем, понимаем сбои

    Файлы, ошибки и отладка: читаем, пишем, понимаем сбои

    Раньше мы писали программы, которые работали с данными внутри кода: переменные, списки, словари, функции. Но часто данные живут снаружи:

  • текст в файле
  • список покупок в shopping.txt
  • результаты программы, которые нужно сохранить
  • А ещё любая программа иногда “падает” с ошибкой. В этой статье ты научишься:

  • читать и писать файлы
  • понимать сообщения об ошибках
  • ловить ошибки так, чтобы программа не ломалась
  • отлаживать код простыми способами
  • Файл простыми словами

    Файл — это текст на диске.

  • у файла есть имя, например notes.txt
  • у файла есть путь (где он лежит)
  • у файла есть содержимое
  • Мы будем работать с текстовыми файлами.

    Как читать файл

    Главная функция для файлов — open(...).

  • открываем файл
  • читаем
  • закрываем
  • Самый безопасный способ в Python — через with. Он сам закроет файл.

    !Схема как работает чтение файла через with

    Пример: прочитать файл целиком

    Создай рядом со своим .py файлом текстовый файл hello.txt и напиши туда одну-две строки.

    Код:

    Что здесь значит:

  • "hello.txt" — имя файла
  • "r" — режим чтения (read)
  • encoding="utf-8" — чтобы русский текст читался нормально
  • as f — создаём переменную f, через неё читаем
  • f.read() — прочитать всё содержимое как строку
  • Пример: прочитать файл построчно

    Когда файл большой, удобно читать по строкам.

    Важно: line обычно содержит символ переноса строки в конце, поэтому вывод может быть “с пустыми строками”. Часто делают так:

    strip() убирает пробелы и переносы строк по краям.

    Как писать в файл

    Есть два частых режима записи:

  • "w" — записать заново (старое содержимое сотрётся)
  • "a" — дописать в конец (append)
  • Пример: перезаписать файл

    Важно:

  • write(...) не добавляет перенос строки сам
  • \n — это перенос строки
  • Пример: дописать в конец

    Почему файл “не находится”

    Ошибка FileNotFoundError обычно означает одно:

  • Python ищет файл не там, где ты думаешь
  • Самое простое правило для начала:

  • клади .py и .txt в одну папку
  • запускай программу так, чтобы она работала из этой папки
  • Если используешь Thonny или другую среду, она обычно запускает файл из правильного места.

    Ошибки: что это и почему это нормально

    Ошибка (exception) — это когда Python не может продолжать выполнение.

    Хорошая новость:

  • ошибки — это не “я тупой”, это обычный способ понять, что именно сломалось
  • Когда Python падает, он печатает:

  • тип ошибки
  • сообщение
  • где именно (файл и строка)
  • Это называется traceback.

    Самые частые ошибки новичка

    | Ошибка | Что означает простыми словами | Мини-пример | |---|---|---| | SyntaxError | написано “не по правилам языка” | забыли : после if | | NameError | переменной не существует | print(x) когда x не создавали | | TypeError | смешали типы или вызвали “не так” | "5" + 2 | | ValueError | тип правильный, но значение не подходит | int("кот") | | IndexError | вышли за индекс списка | nums[10] при маленьком списке | | KeyError | нет ключа в словаре | d["нет"] | | FileNotFoundError | файл не найден | open("no.txt") |

    Как читать traceback и быстро находить место поломки

    Traceback читают так:

  • смотри на самую нижнюю строку — там тип ошибки и сообщение
  • чуть выше ищи строку вида File "...", line ... — это место в твоём коде
  • Пример (тут просто пример формата):

    Перевод на простой язык:

  • сломалось в файле main.py
  • на строке 3
  • потому что x не определён
  • Ловим ошибки: try/except

    Иногда ты заранее знаешь, что может быть проблема. Например, пользователь ввёл не число.

    Тогда можно сделать так, чтобы программа не падала.

    Пример: безопасно превращаем строку в число

    Как это читать:

  • try — попробуй выполнить
  • except ValueError — если случилась именно такая ошибка, сделай вот это
  • Пример: безопасно читаем файл

    Что важно помнить про try/except

  • не надо прятать всё подряд в try, прячь только место риска
  • лучше ловить конкретную ошибку, например ValueError, а не “всё вообще”
  • Подробнее в официальной справке:

  • Ошибки и исключения в учебнике Python
  • Отладка: как понять, что происходит в программе

    Отладка — это когда ты шаг за шагом выясняешь, почему программа ведёт себя не так.

    Способ 1: печать через print

    Самый простой и рабочий способ.

    Способ 2: печать типа через type

    Когда не понимаешь, что лежит в переменной.

    Способ 3: уменьшаем задачу

    Если код большой и непонятно, где сломалось:

  • временно закомментируй половину
  • проверь, работает ли
  • так найдёшь место, где проблема
  • Способ 4: пошаговый отладчик в Thonny

    Если ты используешь Thonny, там есть кнопки пошагового выполнения.

  • ты видишь, как меняются переменные
  • ты проходишь код по строчке
  • Сайт Thonny:

  • Thonny
  • Мини-проект: читаем список дел, добавляем пункт, сохраняем

    Сделаем очень простую программу на основе тем курса:

  • список list
  • цикл for
  • функции def
  • файлы чтение/запись
  • обработка ошибок
  • Файл todo.txt будет хранить дела, по одному делу в строке.

    Идея простая:

  • если файла нет, считаем, что список пустой
  • если пользователь ввёл текст, добавляем и перезаписываем файл
  • Что запомнить из этой статьи

  • файлы читают и пишут через with open(...)
  • режимы: "r" читать, "w" перезаписать, "a" дописать
  • traceback показывает, где и почему упало
  • try/except помогает не ронять программу из-за ожидаемых проблем
  • отладка начинается с простого: print, type`, шаги, уменьшение задачи
  • Полезные ссылки:

  • Функция open в документации Python
  • Ошибки и исключения в учебнике Python
  • The with statement в документации Python
  • 7. Мини-проекты: калькулятор, заметки, парсер и финальная практика

    Мини-проекты: калькулятор, заметки, парсер и финальная практика

    До этого мы учили “кирпичики” Python:

  • переменные и типы
  • if, for, while
  • коллекции (list, dict, set)
  • функции (def, return)
  • файлы, ошибки, try/except
  • Теперь соберём из этих кирпичиков маленькие, но настоящие программы. Они простые, но в них есть всё главное.

    !Общий “скелет” почти любой маленькой программы

    Общий шаблон мини-проекта

    Почти любой мини-проект можно писать по одному и тому же плану:

  • Получили данные (input() или файл)
  • Проверили (если пользователь мог ошибиться, используем try/except)
  • Сделали работу (обычно это функции + if/циклы)
  • Показали результат (print())
  • Если нужно — сохранили (файл через with open(...))
  • Если ты застрял, вернись к этому плану и спроси себя: “Я сейчас на каком шаге?”

    Мини-проект: калькулятор в терминале

    Идея: пользователь выбирает действие (сложить, вычесть и т.д.), вводит два числа, получает ответ.

    Что тренируем:

  • input()
  • try/except для ошибок ввода
  • функции def
  • цикл while, чтобы калькулятор не закрывался сразу
  • Код: калькулятор

    Создай файл calculator.py:

    Почему это хороший пример

  • read_number(...) прячет повторяющийся код “введи число, а если ошибка — попроси ещё раз”.
  • while True держит программу “живой”, пока пользователь не введёт q.
  • Деление на ноль мы проверяем отдельно.
  • Мини-проект: заметки (добавить, показать, удалить) + сохранение в файл

    Идея: у нас есть список заметок. Мы умеем:

  • показать все заметки
  • добавить заметку
  • удалить заметку по номеру
  • сохранить всё в файл
  • Что тренируем:

  • list и индексы
  • чтение и запись файла
  • try/except
  • цикл-меню
  • !Идея проекта “заметки”: меню в терминале и файл для хранения

    Код: заметки

    Создай файл notes.py:

    Обрати внимание

  • Мы показываем номера с 1, а в списке индексы с 0. Поэтому index = num - 1.
  • enumerate(notes, start=1) удобно даёт “номер и текст”.
  • Справка (на будущее):

  • enumerate
  • Мини-проект: парсер расходов из файла (разбор текста в строки и числа)

    Слово парсер здесь означает: “прочитать текст и разобрать его на части”.

    Формат файла expenses.txt (по одной покупке в строке):

  • категория;сумма
  • Пример содержимого expenses.txt:

    Задача программы:

  • прочитать файл
  • сложить суммы по категориям
  • вывести отчёт
  • Что тренируем:

  • файлы
  • str.split(...)
  • словарь dict для суммирования
  • try/except для “битых строк”
  • Код: парсер расходов

    Создай файл expenses_parser.py:

    Почему тут важны split и dict

  • split(";") режет строку на части.
  • totals хранит “категория → сумма”. Это классическая задача для словаря.
  • Справка (на будущее):

  • str.split
  • Тип dict
  • Финальная практика: как довести мини-проект до “нормально сделано”

    Твои мини-проекты будут выглядеть взрослее, если ты сделаешь 5 простых улучшений.

    Делай “маленькие функции”

    Хороший признак:

  • у функции понятное имя
  • внутри 5–20 строк
  • она делает одну вещь
  • Плохой признак:

  • один файл на 300 строк
  • всё внутри одного while
  • Думай про “плохой ввод” заранее

    Почти всегда нужно защититься от:

  • пустой строки
  • нечисла вместо числа
  • номера, который не существует
  • отсутствующего файла
  • Для этого и есть strip() и try/except.

    Сохраняй данные сразу после изменения

    Как в проекте с заметками:

  • добавили или удалили заметку
  • сразу save_notes(...)
  • Так меньше шанс потерять данные.

    Пиши понятные сообщения пользователю

    Если что-то пошло не так, лучше так:

  • “Нужен номер (целое число)”
  • “Нет заметки с таким номером”
  • А не просто “ошибка”.

    Если сломалось, читай traceback снизу

    Правило:

  • самая нижняя строка говорит, какая именно ошибка
  • строки выше показывают, где именно
  • Справка (на будущее):

  • Ошибки и исключения
  • Мини-итог

    Ты сделал (или можешь сделать) 3 мини-проекта:

  • калькулятор: ввод, проверки, функции, while
  • заметки: список, индексы, файл, меню
  • парсер: чтение файла, split, словарь для отчёта, пропуск плохих строк
  • Если ты понимаешь эти примеры и можешь чуть-чуть их менять под себя, то базовый Python у тебя уже есть.