← НАЗАД К КУРСУ Этап 1 · Урок 3 из 8

Урок 1.2 — Файлы и форматы

Каждый файл на компьютере имеет расширение — буквы после точки. Расширение говорит, что внутри файла и чем его открывать. Как язык, на котором написан документ — если не знаешь язык, не поймёшь содержимое.


Зачем это знать

Когда ты работаешь с кодом и AI, ты постоянно видишь файлы:

app.py
config.json
.env
README.md
package.json
requirements.txt

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


.py — файл с кодом на Python

Что внутри: Инструкции для компьютера, написанные на языке Python.

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

Аналогия: Сценарий фильма. Актёры (компьютер) читают сценарий (.py файл) и выполняют действия по порядку.

# файл: app.py
# Это файл с Python-кодом. Компьютер читает его сверху вниз и выполняет каждую строку.

name = "Катя"
print(f"Привет, {name}!")

# Чтобы запустить: открываешь терминал и пишешь
# python3 app.py
# Результат: Привет, Катя!

.js — файл с кодом на JavaScript

Что внутри: Инструкции на языке JavaScript.

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

// файл: app.js
// JavaScript-код. Двойной слеш — это комментарий (компьютер его игнорирует)

let name = "Катя";
console.log(`Привет, ${name}!`);

// console.log — как print в Python, выводит текст

.json — файл с данными

Что внутри: Структурированные данные. Не код — именно данные.

Зачем: Когда программы передают информацию друг другу — они используют JSON. Когда Instagram отправляет твоему телефону список постов в ленте — это JSON. Когда AI-модель получает запрос — это JSON.

Аналогия: Анкета с полями. У каждого поля есть название и значение.

{
    "name": "Катя",
    "age": 25,
    "city": "Москва",
    "interests": ["AI", "дизайн", "музыка"]
}

// Правила JSON:
// - данные в фигурных скобках {}
// - каждое поле: "название": значение
// - текст в кавычках, числа без
// - список в квадратных скобках []
// - НЕЛЬЗЯ писать комментарии (я написал для объяснения, но в реальном .json файле их нет)

.env — файл с секретами

Что внутри: Пароли, API-ключи, секретные настройки.

Зачем: Когда твоя программа подключается к AI (Claude, OpenAI) или к базе данных — ей нужен ключ доступа. Этот ключ хранится в .env. Файл начинается с точки — значит он скрытый.

Аналогия: Сейф с паролями. Ты не кричишь свой пароль в комнате — ты хранишь его в надёжном месте. .env — это тот самый сейф.

# файл: .env
# Каждая строка — одна переменная: НАЗВАНИЕ=значение
# Без пробелов вокруг знака =
# Без кавычек (обычно)

ANTHROPIC_API_KEY=sk-ant-abc123def456
DATABASE_URL=postgresql://localhost:5432/mydb
SECRET_KEY=super-secret-value

# ГЛАВНОЕ ПРАВИЛО: никогда не загружай .env в интернет (GitHub)
# Для этого существует .gitignore (расскажем в уроке про Git)

.md — Markdown, файл с текстом и разметкой

Что внутри: Текст с простой разметкой — заголовки, списки, ссылки, жирный текст.

Зачем: Документация, описания проектов, этот самый урок — всё написано в .md. Когда ты заходишь на GitHub и видишь красиво оформленное описание проекта — это .md файл.

Аналогия: Google Docs, но в текстовом файле. Вместо кнопки "жирный" ты пишешь **жирный**.

# Заголовок (решётка + пробел)

## Подзаголовок (две решётки)

Обычный текст. **Жирный текст**. *Курсив*.

- Список
- Ещё пункт
- И ещё

[Ссылка на Google](https://google.com)

`код в строке`

.gitignore — список того, что Git должен игнорировать

Что внутри: Перечень файлов и папок, которые не нужно сохранять в историю и загружать на GitHub.

Зачем: Ты не хочешь, чтобы твои пароли (.env), временные файлы и тяжёлые папки попали в интернет.

# файл: .gitignore
# Каждая строка — то, что Git будет игнорировать

.env                # секреты
node_modules/       # папка с библиотеками (тяжёлая, скачивается заново)
__pycache__/        # временные файлы Python
.DS_Store           # служебный файл macOS

requirements.txt — список Python-библиотек

Что внутри: Названия и версии библиотек, которые нужны твоему проекту.

Зачем: Когда ты отправляешь свой код другому человеку (или на сервер), он должен знать, какие библиотеки установить. Этот файл — как список покупок.

# файл: requirements.txt
# Одна библиотека на строку
# == означает "именно эта версия"

anthropic==0.43.0
requests==2.31.0
python-dotenv==1.0.0
# Чтобы установить всё из списка:
pip install -r requirements.txt

package.json — описание JavaScript-проекта

Что внутри: Название проекта, версия, список библиотек, скрипты для запуска.

Зачем: Как паспорт проекта. Когда кто-то скачивает твой проект — package.json говорит: "вот что нужно установить, вот как запустить".

{
    "name": "my-ai-bot",
    "version": "1.0.0",
    "scripts": {
        "start": "node app.js"
    },
    "dependencies": {
        "express": "^4.18.0"
    }
}

// "scripts" — команды для запуска: npm run start
// "dependencies" — библиотеки, которые нужны проекту

Как всё связано

Типичный AI-проект выглядит так:

my-ai-agent/
├── app.py              ← основной код (Python)
├── requirements.txt    ← какие библиотеки нужны
├── .env                ← API-ключи (секреты)
├── .gitignore          ← что не загружать на GitHub
├── config.json         ← настройки
└── README.md           ← описание проекта

Каждый файл — на своём месте. Каждый делает одну задачу.


Задачки на закрепление

Задача 1: Ты получила API-ключ от Claude: sk-ant-xyz789. В какой файл его сохранить?

Ответ В `.env` файл:
ANTHROPIC_API_KEY=sk-ant-xyz789

Задача 2: Подруга прислала тебе свой проект. Ты видишь файл requirements.txt. Что тебе нужно сделать?

Ответ Установить все библиотеки из этого файла:
pip install -r requirements.txt

Задача 3: Ты хочешь, чтобы файл .env не попал на GitHub. Что сделать?

Ответ Добавить `.env` в файл `.gitignore`:
.env

Задача 4: Тебе нужно сохранить информацию о пользователе (имя, email, возраст) в формате, который понимают все программы. Какой формат выберешь и как это будет выглядеть?

Ответ JSON:
{
    "name": "Катя",
    "email": "katya@example.com",
    "age": 25
}

Практика

Задание 1: Создай структуру проекта

Создай папку my-first-project и внутри неё вручную создай файлы:

Открой папку в VS Code и посмотри, как редактор подсвечивает каждый формат по-разному.

Задание 2: Угадай формат

Представь, что тебе нужно сохранить: 1. Список покупок — какой формат выберешь? 2. Настройки приложения (язык, тема, имя пользователя) — какой формат? 3. Секретный ключ от API — какой формат?

Запиши ответы, потом проверь себя ниже.

Ответы 1. `.txt` или `.md` — простой текст, не нужна структура 2. `.json` — структурированные данные «ключ-значение» 3. `.env` — секреты хранят в `.env` и никогда не кладут в git

Задание 3: Прочитай чужой JSON

Открой терминал и выполни:

echo '{"city": "Москва", "temp": -5, "wind": true}' > weather.json

Открой файл в VS Code. Ответь: какого типа каждое значение? (строка, число, булево)


Глоссарий

Термин Что значит
.py Расширение файлов Python — в них пишут код, который выполняет компьютер
.json Формат для структурированных данных (настройки, ответы от API) — читают и люди, и программы
.env Файл для секретов (ключи, пароли) — никогда не загружается в git
.md Markdown — формат для красивого текстового оформления (заголовки, списки, ссылки)
.txt Простой текстовый файл без какого-либо форматирования
.csv Таблица в текстовом виде, где значения разделены запятыми
.gitignore Файл-список того, что git должен игнорировать и не отправлять на GitHub
Формат файла Соглашение о том, как организованы данные внутри файла
Расширение Часть имени файла после точки (.py, .json), по которой программы понимают, как с файлом работать
Кодировка UTF-8 Стандарт, который позволяет хранить в файле буквы любых языков — от русского до японского

Главное

Расширение файла подсказывает, что внутри:
  .py        — код на Python
  .json      — структурированные данные (настройки, API)
  .env       — секреты (ключи, пароли) — НЕ кладём в git!
  .md        — текст с оформлением (README, документация)
  .txt       — простой текст
  .csv       — таблица (строки и столбцы через запятую)
  .gitignore — список файлов, которые git должен игнорировать

Правила:
- Секреты → .env + добавить .env в .gitignore
- Данные «ключ-значение» → .json
- Таблицы → .csv
- Описание проекта → README.md
- Всегда сохраняй файлы в кодировке UTF-8

Что дальше?

В следующем уроке — Python: переменные и типы данных. Начнём писать настоящий код.

← ПРЕДЫДУЩИЙ СЛЕДУЮЩИЙ →