0/12
🐍

Python на Mac с нуля

Полный практический курс для абсолютных новичков. От первого «Hello, World!» до создания собственных программ — с геймификацией, AI-помощниками и 12 ачивками.

12
уроков
3–5
часов
12
ачивок
возможностей

Почему этот курс работает

🎯 Маленькие шаги
Каждый урок — 10–20 минут. Не перегружает.
🧠 Аналогии из жизни
Связываем новое с тем, что вы уже знаете.
🏆 Геймификация
Собирайте ачивки и отслеживайте прогресс.
🤖 AI-напарник
Научимся использовать AI для ускорения обучения.
Модуль 0

Что такое программирование и Python

🎯 Цель: Понять, что такое программирование, и почему Python — идеальный выбор для старта

Что такое программирование?

Представьте, что вы хотите научить робота мыть посуду. Вам нужно дать ему точную пошаговую инструкцию:

  1. Открой шкаф
  2. Достань тарелку
  3. Включи воду
  4. Намочь губку
  5. Нанеси средство
  6. Помой тарелку
  7. Ополосни
  8. Поставь на сушилку

Программирование — это написание инструкций для компьютера. Компьютер выполняет команды буквально: ровно то, что вы написали, не больше и не меньше.

💡 Аналогия
Программа — это рецепт. Вы — повар (программист), компьютер — помощник на кухне. Если в рецепте написано «добавь соль», а вы не указали сколько — помощник растеряется. Поэтому программирование учит думать точно и структурированно.

Почему именно Python?

ПричинаОбъяснение
🗣️ Читается как английскийprint("Привет") — буквально «напечатай привет»
🧩 Огромное сообществоМиллионы разработчиков — любой вопрос уже кем-то задан
🌐 Применяется вездеВеб-сайты, AI, анализ данных, автоматизация, игры
🎓 Идеален для стартаМинимум «магии» — вы сразу понимаете, что происходит
🤖 Лидер в AI/MLChatGPT, нейросети, машинное обучение — всё на Python

Ключевые термины

ТерминЧто значитАналогия
КодТекст программыРецепт блюда
Переменная«Коробка» для данныхКоробка с подписью
ФункцияГотовая командаКнопка на миксере
БиблиотекаНабор готовых функцийШкаф с инструментами
ИнтерпретаторПрограмма, выполняющая PythonПереводчик
ТерминалЧат с компьютером текстомЧат с ботом
ПакетСторонняя библиотекаПриложение из App Store
🧠 Проверь себя: Что такое переменная?
Команда для установки программы
Именованная «коробка» для хранения данных
Тип файла программы
🏆
Ачивка: «Первый шаг»
Вы уже знаете больше, чем 80% людей, которые «хотели бы попробовать программирование»
Модуль 1

Терминал: ваш первый инструмент

🎯 Цель: Научиться открывать Терминал и выполнять простые команды

Что такое Терминал?

Терминал — это текстовый чат с вашим компьютером. Вместо кликания мышкой по иконкам вы пишете команды словами.

💡 Аналогия
Терминал — как Siri, только мощнее. Вы пишете команду — компьютер выполняет. Но в отличие от Siri, Терминал понимает точные команды и может делать что угодно.

Открываем Терминал

Способ 1 — через Spotlight (самый быстрый):

  1. Нажмите ⌘ + Пробел — откроется Spotlight
  2. Напишите Terminal или Терминал
  3. Нажмите Enter

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

Введите каждую команду и нажмите Enter:

bash
# Кто вы?
whoami

# Где вы находитесь?
pwd

# Что вокруг?
ls

# Создать папку
mkdir моя_первая_папка

# Зайти в папку
cd моя_первая_папка

# Вернуться назад
cd ..

# Очистить экран
clear

Шпаргалка команд

КомандаЧто делаетКак запомнить
pwdГде я?Print Working Directory
lsЧто вокруг?List (список)
cdИди тудаChange Directory
cd ..Шаг назад.. = родительская папка
mkdirСоздай папкуMake Directory
clearОчисти экранОчистить
💡 Супер-трюки
(стрелка вверх) — покажет последнюю команду. Tab — автодополнение. Не бойтесь ошибок — обычными командами почти невозможно что-то сломать!
🧠 Что делает команда pwd?
Создаёт папку
Показывает текущую папку
Удаляет файл
🏆
Ачивка: «Командующий»
Вы научились общаться с компьютером на его языке!
Модуль 2

Установка Python на Mac

🎯 Цель: Установить актуальную версию Python 3.14 на ваш Mac

Порядок установки

ШагИнструментАналогия
1Xcode Command Line ToolsФундамент дома
2HomebrewСтроительный магазин
3Python 3.14Материал для стен

Шаг 1: Xcode Command Line Tools

bash
xcode-select --install

Нажмите «Установить» в появившемся окне. Подождите 5–15 минут.

Проверка:

bash
gcc --version

Шаг 2: Homebrew

bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

После установки добавьте в PATH (Apple Silicon):

bash
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Проверка:

bash
brew --version

Шаг 3: Python 3.14

bash
brew install python

Проверка:

bash
python3 --version
# Ожидаемый результат: Python 3.14.x

which python3
# Ожидаемый результат: /opt/homebrew/bin/python3

pip3 --version
⚠️ Важно!
Никогда не удаляйте системный Python (/usr/bin/python3) — macOS использует его для своих задач. Всегда пишите python3 (с тройкой).
🏆
Ачивка: «Укротитель Python»
Python 3.14 установлен и готов к работе!
Модуль 3

Редактор кода VS Code

🎯 Цель: Установить и настроить Visual Studio Code — вашу «мастерскую» для программирования

Почему VS Code?

💡 Аналогия
Если Терминал — это чат с компьютером, то VS Code — полноценная мастерская с верстаком, освещением и ящиками инструментов.

Установка

bash
brew install --cask visual-studio-code

Необходимые расширения

РасширениеЗачем нужно
Python (Microsoft)Подсветка, автодополнение, отладка
Pylance (Microsoft)Умные подсказки, проверка типов
Russian Language PackРусификация интерфейса

Создаём рабочую папку

bash
mkdir ~/python-projects
cd ~/python-projects
code ~/python-projects
💡 Если команда code не работает
Откройте VS Code → ⇧+⌘+P → «Shell Command: Install code command in PATH» → Enter.

Выбор интерпретатора

  1. Нажмите ⇧ + ⌘ + P
  2. Введите Python: Select Interpreter
  3. Выберите /opt/homebrew/bin/python3
🏆
Ачивка: «Архитектор»
Ваша мастерская готова к работе!
Модуль 4

Первая программа и основы синтаксиса

🎯 Цель: Написать, запустить и понять первую программу

🎉 Ваша первая программа!

Создайте файл hello.py в VS Code и напишите:

python — hello.py
# Это комментарий — Python его игнорирует
# Комментарии — заметки для себя и других

print("Привет, мир!")
print("Я написал свою первую программу!")

Запуск:

bash
python3 hello.py

Функция print()

python
print("Текст в кавычках")     # Выведет: Текст в кавычках
print(42)                      # Выведет: 42
print("Сумма:", 2 + 2)        # Выведет: Сумма: 4

Отступы — ЭТО ВАЖНО!

python
# ✅ Правильно:
if True:
    print("Это внутри блока")  # 4 пробела отступа

# ❌ Неправильно — будет ошибка:
if True:
print("Нет отступа!")       # ОШИБКА!

Интерактивный режим

bash → python
python3

# Откроется интерактивная сессия:
>>> print("Привет!")
Привет!
>>> 2 + 2
4
>>> exit()  # выйти
🧪 Мини-задание
Создайте файл about_me.py и напишите программу, которая выводит: ваше имя, город, почему вы учите Python, какую программу хотите создать.
🏆
Ачивка: «Hello, World!»
Вы прошли обряд посвящения. Каждый программист начинал с этого.
Модуль 5

Переменные и типы данных

🎯 Цель: Научиться хранить и использовать данные

Что такое переменная?

💡 Аналогия
Переменная — это именованная «коробка» для хранения данных. Представьте полку с подписанными коробками.
python
имя = "Алексей"
возраст = 25
город = "Москва"
рост = 1.75
учу_python = True

print("Меня зовут:", имя)
print(f"Мой рост: {рост} м")  # f-строка

Типы данных

ТипЧто хранитПримерАналогия
strТекст"Привет"Записка
intЦелое число42Счётчик
floatДробное число3.14Линейка
boolИстина/ЛожьTrue / FalseВыключатель
listСписок[1, 2, 3]Нумер. шкаф
dictСловарь{"имя": "Алексей"}Тел. книга

Математические операции

python
a = 10
b = 3
print(a + b)    # 13 — сложение
print(a - b)    # 7  — вычитание
print(a * b)    # 30 — умножение
print(a / b)    # 3.33 — деление
print(a // b)   # 3  — целочисл. деление
print(a % b)    # 1  — остаток
print(a ** b)   # 1000 — степень

Списки

python
фрукты = ["яблоко", "банан", "вишня"]

print(фрукты[0])   # "яблоко" (нумерация с 0!)
print(фрукты[-1])  # "вишня" (последний)

фрукты.append("манго")
print(len(фрукты))  # 4

for фрукт in фрукты:
    print(f"Я люблю {фрукт}")
⚠️
Нумерация в Python начинается с 0, а не с 1!

Словари

python
человек = {
    "имя": "Алексей",
    "возраст": 25,
    "город": "Москва"
}

print(человек["имя"])  # "Алексей"
человек["работа"] = "Python-разработчик"

for ключ, значение in человек.items():
    print(f"{ключ}: {значение}")
🧪 Мини-задание
Создайте calculator.py: попросите пользователя ввести два числа (float(input())), выведите сумму, разность, произведение и частное.
🏆
Ачивка: «Хранитель данных»
Вы научились работать с информацией!
Модуль 6

Условия и логика

🎯 Цель: Научить программу принимать решения

Что такое условия?

💡 Аналогия
ЕСЛИ идёт дождь → ТО беру зонт. ЕСЛИ холодно → ТО куртка, ИНАЧЕ — футболка. В программировании — то же самое!
python
погода = "дождь"

if погода == "дождь":
    print("Бери зонт!")
elif погода == "холодно":
    print("Надевай куртку!")
else:
    print("Одевайся как хочешь!")

Операторы сравнения

ОператорЗначениеПример
==Равно5 == 5 → True
!=Не равно5 != 3 → True
>Больше5 > 3 → True
<Меньше3 < 5 → True
>=Больше или равно5 >= 5 → True
<=Меньше или равно3 <= 5 → True
⚠️ Частая ошибка
== (сравнение) vs = (присваивание). Это разные вещи!

Логические операторы

python
возраст = 25
есть_права = True

if возраст >= 18 and есть_права:
    print("Можно водить машину")

if возраст < 18 or not есть_права:
    print("Нельзя водить")
🧪 Мини-задание
Создайте quiz.py — викторину: задайте вопрос, проверьте ответ через if/elif/else, выведите результат.
🏆
Ачивка: «Принимающий решения»
Ваши программы теперь думают!
Модуль 7

Циклы: повторяем с умом

🎯 Цель: Научиться повторять действия автоматически

Цикл for

python
for i in range(5):
    print(i)
# 0, 1, 2, 3, 4

имена = ["Алексей", "Мария", "Дмитрий"]
for имя in имена:
    print(f"Привет, {имя}!")

Цикл while

python
счётчик = 0
while счётчик < 5:
    print(f"Счётчик: {счётчик}")
    счётчик += 1  # Не забудьте!

🎮 Игра «Угадай число»

python
import random

загаданное = random.randint(1, 100)
попытки = 0

print("Я загадал число от 1 до 100!")

while True:
    догадка = int(input("Ваш вариант: "))
    попытки += 1
    
    if догадка < загаданное:
        print("Больше!")
    elif догадка > загаданное:
        print("Меньше!")
    else:
        print(f"Угадали за {попытки} попыток!")
        break
🧪 Мини-задание
Создайте times_table.py: спросите число, выведите таблицу умножения от 1 до 10.
🏆
Ачивка: «Машина времени»
Вы научили машины повторять действия за вас!
Модуль 8

Функции: создаём свои команды

🎯 Цель: Научиться создавать переиспользуемые блоки кода

Что такое функция?

💡 Аналогия
Функция — как рецепт в поваренной книге. Один раз записали — пользуетесь сколько угодно.
python
def поприветствовать(имя):
    print(f"Привет, {имя}! Рад тебя видеть!")

поприветствовать("Алексей")
поприветствовать("Мария")

Возврат результата

python
def сложить(a, b):
    return a + b

сумма = сложить(3, 5)
print(сумма)  # 8

Калькулятор функциями

python
def сложить(a, b):    return a + b
def вычесть(a, b):    return a - b
def умножить(a, b):   return a * b
def разделить(a, b):
    if b == 0:
        return "Ошибка: деление на ноль!"
    return a / b

print("Результат:", сложить(10, 5))
print("Результат:", разделить(10, 0))
🧪 Мини-задание
Создайте temperature.py: функция celsius_to_fahrenheit(celsius), формула: F = C × 9/5 + 32.
🏆
Ачивка: «Изобретатель»
Вы создаёте собственные инструменты!
Модуль 9

Виртуальные окружения и пакеты

🎯 Цель: Научиться управлять зависимостями и создавать изолированные среды

Что такое пакеты?

💡 Аналогия
Python — смартфон. Пакеты — приложения из App Store. Базовый телефон звонит, но с приложениями он может всё.

Почему виртуальные окружения?

Начиная с Python 3.14, действует PEP 668: нельзя ставить пакеты в глобальный Python. Виртуальное окружение — изолированная среда для каждого проекта.

Создаём окружение

bash
# Создаём папку
mkdir ~/python-projects/my-first-project
cd ~/python-projects/my-first-project

# Создаём виртуальное окружение
python3 -m venv .venv

# Активируем
source .venv/bin/activate
# Появится (.venv) в начале строки!

Работа с пакетами

bash
pip install requests           # Установить
pip list                       # Список установленных
pip freeze > requirements.txt  # Сохранить список
pip install -r requirements.txt # Установить из файла
deactivate                     # Выйти из окружения
ПакетЧто делает
requestsРабота с HTTP/API
richКрасивый вывод в терминале
pytestТестирование кода
blackФорматирование кода
flaskВеб-приложения
🏆
Ачивка: «Менеджер проектов»
Вы научились управлять проектами как профессионал!
Модуль 10

Работа с файлами и данными

🎯 Цель: Научиться читать и записывать файлы

Запись и чтение

python
# Записываем
with open("заметки.txt", "w") as файл:
    файл.write("Мой первый файл!\n")
    файл.write("Вторая строка.\n")

# Читаем
with open("заметки.txt", "r") as файл:
    print(файл.read())

JSON

python
import json

данные = {
    "имя": "Алексей",
    "навыки": ["Python", "Git", "SQL"]
}

with open("данные.json", "w") as f:
    json.dump(данные, f, ensure_ascii=False, indent=2)

with open("данные.json", "r") as f:
    загруженные = json.load(f)
    print(загруженные["имя"])

Мини-проект: Дневник

python
import datetime

def записать_в_дневник(запись):
    дата = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
    with open("дневник.txt", "a") as файл:
        файл.write(f"\n[{дата}]\n{запись}\n{'─' * 40}\n")
    print("✓ Запись сохранена!")

def показать_дневник():
    try:
        with open("дневник.txt", "r") as файл:
            print(файл.read())
    except FileNotFoundError:
        print("Дневник пуст!")

записать_в_дневник("Сегодня я научился работать с файлами!")
показать_дневник()
🏆
Ачивка: «Архивариус»
Ваши программы работают с данными на диске!
Модуль 11

AI и LLM как помощники программиста

🎯 Цель: Эффективно использовать AI для написания кода и обучения

Инструменты AI (2026)

ИнструментДля чегоЦена
🥇 GitHub CopilotАвтодополнение в VS Code, лучший для новичкаFree / $10/мес
🥈 ChatGPT / ClaudeОбучение, объяснение кода, отладкаFree / $20/мес
🥉 CursorAI-native IDE для продвинутыхFree / $20/мес

4 золотых правила

Правило 1: AI — помощник, не замена
Если не можете объяснить каждую строчку — не используйте этот код.
Правило 2: Конкретика
Не «сделай парсер», а детальный список требований.
Правило 3: Проверяйте
AI иногда ошибается. Всегда запускайте и проверяйте.
Правило 4: Контекст для отладки
Укажите: код + ожидаемый результат + фактический + текст ошибки.

Примеры промптов

Промпт для обучения
Я изучаю Python второй день. Объясни, как работают списки,
используя аналогии из повседневной жизни. Приведи 3 примера
кода от простого к сложному.
Промпт для отладки
Вот мой код: [код]. Он выдаёт ошибку: [ошибка].
Объясни, почему возникает ошибка и как исправить.
Не просто дай ответ — объясни причину.
Промпт для планирования
Я хочу создать программу, которая [описание].
Помоги разбить задачу на маленькие шаги.
Не пиши весь код — давай решать пошагово.

Мини-проект: Персональный ассистент

python — todo.py
def показать_задачи(задачи):
    if not задачи:
        print("\n📋 Список задач пуст!")
    else:
        print("\n📋 Ваши задачи:")
        for i, (задача, выполнена) in enumerate(задачи, 1):
            статус = "✅" if выполнена else "⬜"
            print(f"  {i}. {статус} {задача}")

def главный_цикл():
    задачи = []
    print("🤖 Привет! Я менеджер задач.")
    print("   Команды: добавить, выполнить, список, выход\n")
    
    while True:
        команда = input("Что сделать? ").lower().strip()
        
        if команда == "добавить":
            текст = input("Что добавить? ")
            задачи.append((текст, False))
            print(f"✓ Добавлено: {текст}")
        elif команда == "список":
            показать_задачи(задачи)
        elif команда == "выход":
            print("До свидания! 👋")
            break
        else:
            print("Неизвестная команда.")

if __name__ == "__main__":
    главный_цикл()
🏆
Ачивка: «Симбиоз»
Вы научились работать в команде с AI!
Финал

🎓 Финальный проект

🎯 Цель: Объединить все знания в одном проекте

Проект: «Ежедневный планировщик»

Создайте программу, которая:

✅ Позволяет добавлять задачи с приоритетом (высокий/средний/низкий)
✅ Сохраняет задачи в файл (не пропадают после закрытия)
✅ Показывает задачи, отсортированные по приоритету
✅ Позволяет удалять выполненные задачи
✅ Показывает статистику (всего / выполнено / осталось)

Подсказки для реализации

python — planner.py (начало)
import json
import os

ФАЙЛ_ЗАДАЧ = "задачи.json"

def загрузить_задачи():
    """Загружает задачи из файла"""
    if os.path.exists(ФАЙЛ_ЗАДАЧ):
        with open(ФАЙЛ_ЗАДАЧ, "r") as f:
            return json.load(f)
    return []

def сохранить_задачи(задачи):
    """Сохраняет задачи в файл"""
    with open(ФАЙЛ_ЗАДАЧ, "w") as f:
        json.dump(задачи, f, ensure_ascii=False, indent=2)

def добавить_задачу(задачи):
    """Добавляет новую задачу"""
    текст = input("Описание задачи: ")
    print("Приоритет: 1-высокий, 2-средний, 3-низкий")
    приоритет = int(input("Выберите (1-3): "))
    задачи.append({
        "текст": текст,
        "приоритет": приоритет,
        "выполнена": False
    })
    сохранить_задачи(задачи)
    print("✓ Задача добавлена!")

# ... продолжите сами: показ, выполнение, удаление, статистика
🎓
Ачивка: «Выпускник курса»
Вы завершили весь курс и создали полноценный проект!
Прогресс

🏆 Ваши достижения

Отслеживайте свой прогресс по курсу
#АчивкаСтатус
0🏆 «Первый шаг»
1🏆 «Командующий»
2🏆 «Укротитель Python»
3🏆 «Архитектор»
4🏆 «Hello, World!»
5🏆 «Хранитель данных»
6🏆 «Принимающий решения»
7🏆 «Машина времени»
8🏆 «Изобретатель»
9🏆 «Менеджер проектов»
10🏆 «Архивариус»
11🏆 «Симбиоз»
🎓 «Выпускник курса»

Прогресс: 0 / 13

Опубликовано на htmlkin.ru