McBin

Переменные: Как компьютер запоминает | Урок 2

Вот готовый урок, адаптированный для ученика 9 класса.

***

# Урок: Переменные — Как компьютер запоминает

### Вступление: Зачем нам это нужно?

Представь, что ты играешь в сложную RPG. Ты потратил три часа, прокачал персонажа до 50 уровня, собрал легендарный лут, а потом... игра «забыла» всё это сделать. Твой уровень снова 1, инвентарь пуст. Бесит, правда?

Без **переменных** любая программа была бы именно такой — с памятью как у золотой рыбки (ровно 3 секунды). Переменные — это способ научить компьютер запоминать информацию: твой счет в игре, пароль от Инстаграма, количество лайков или текст сообщения, которое ты отправляешь другу.

Сегодня мы разберемся, как хранить данные, почему компьютер иногда ведет себя странно с цифрами и как заставить его считать за тебя.

---

### Часть 1: Что такое переменная?

В программировании **переменная** — это именованная область памяти. Но это звучит скучно.

**Аналогия из жизни:**
Представь огромный склад с тысячами пустых коробок.
1. Ты берешь одну коробку.
2. Клеишь на неё стикер с надписью **`score`** (счет).
3. Кладешь внутрь число **`100`**.

Теперь, когда ты скажешь компьютеру «дай мне `score`», он пойдет на склад, найдет коробку с этим стикером и скажет: «Там лежит 100».

В Python это выглядит супер-просто:

```python
score = 100
username = "CyberNinja"
```

**Важный момент:** Знак `=` в программировании — это НЕ «равно» из математики. Это **оператор присваивания**.
Читается это так: *«Взять значение справа и положить его в переменную слева»*.

---

### Часть 2: Типы данных — `int` и `str`

Компьютер — парень педантичный. Ему важно знать, *что именно* лежит в коробке: число, с которым можно делать математику, или текст, который нужно просто показать.

#### 1. Целые числа (`int`)
От английского *Integer*. Это обычные числа без запятых: 5, -10, 42, 100500.
С ними можно проводить любые арифметические операции.

```python
health = 100
damage = 25
remaining_health = health - damage  # Результат: 75
```

#### 2. Строки (`str`)
От английского *String* (нитка, цепочка). Это текст — цепочка символов.
Чтобы Python понял, что это текст, а не команда, мы **обязательно** берем его в кавычки (одинарные `' '` или двойные `" "`).

```python
message = "Game Over"
name = 'Alex'
```

**Лайфхак:** Если ты напишешь число в кавычках (`'50'`), для компьютера это перестанет быть числом и станет просто картинкой с текстом «50».

---

### Часть 3: Математика для ленивых

Python — отличный калькулятор. Тебе доступны все базовые операции:

*   `+` (сложение)
*   `-` (вычитание)
*   `*` (умножение) — обрати внимание, это звездочка, а не крестик.
*   `/` (деление)

Пример:
```python
apples = 10
friends = 2
apples_per_friend = apples / friends 
print(apples_per_friend) # Выведет 5.0
```

---

### Часть 4: Главная ловушка — `5 + 5` или `'5' + '5'`?

Вот здесь многие новички ломают голову. Давай посмотрим на код:

```python
a = 5 + 5
b = '5' + '5'

print(a) # Выведет: 10
print(b) # Выведет: 55
```

**Почему так происходит?**

1.  В первом случае (`5 + 5`) мы работаем с типом **`int`**. Компьютер видит числа и делает математику.
2.  Во втором случае (`'5' + '5'`) мы работаем с типом **`str`**. Для компьютера это не цифры, это просто символы.

Когда мы используем знак `+` для строк, происходит **конкатенация** (склеивание).
Это то же самое, что сложить слова:
`'Hot'` + `'dog'` = `'Hotdog'`

Компьютер рассуждает так: «Ага, ты дал мне текст "5" и текст "5". Ты хочешь склеить их вместе? Без проблем! Получи текст "55"».

**Запомни:**
*   `int` + `int` = Математика
*   `str` + `str` = Склеивание
*   `str` + `int` = **Ошибка!** (Компьютер не знает, как сложить слово и число).

---

### Практические примеры

Давай применим это в реальных (ну, почти) задачах.

#### Пример 1: Игровая статистика (Работа с числами)
Представь, что ты пишешь код для шутера. Игрок нашел аптечку.

```python
current_hp = 45          # Текущее здоровье (int)
medkit_power = 50        # Сила аптечки (int)

# Игрок лечится
current_hp = current_hp + medkit_power

print(current_hp)        # Результат: 95
```
*Здесь мы использовали переменную `current_hp` саму в себе: взяли старое значение (45), добавили 50 и сохранили обратно.*

#### Пример 2: Генератор никнейма (Работа со строками)
Ты регистрируешься на сайте, и система создает тебе уникальный ID.

```python
base_name = "Stalker"     # Строка
clan_tag = "[RU]"         # Строка
year = "2024"             # Строка (заметь, в кавычках!)

full_nickname = clan_tag + base_name + year

print(full_nickname)      # Результат: [RU]Stalker2024
```
*Если бы `year` был числом (2024 без кавычек), программа выдала бы ошибку. Мы не можем приклеить число к тексту, не превратив его сначала в строку.*

#### Пример 3: Расчет карманных денег
Ты копишь на новый телефон.

```python
price = 50000             # Цена телефона
savings = 12000           # Уже накоплено
monthly_income = 5000     # Откладываешь в месяц

# Сколько еще нужно накопить?
needed = price - savings

# Сколько месяцев ждать?
months_left = needed / monthly_income

print(months_left)        # Результат: 7.6
```
*Ответ 7.6 месяца. Придется ждать 8 месяцев!*

---

### Интересные факты

1.  **Змеиный язык:** В Python принято называть переменные маленькими буквами, разделяя слова нижним подчеркиванием: `my_super_variable`. Этот стиль называется **snake_case** (змеиный регистр). Это не обязательно, но если назовешь переменную `MyVariable`, другие питонисты посмотрят на тебя косо.
2.  **Динамическая типизация:** Python — очень гибкий язык. В других языках (как C++ или Java) если ты создал коробку для целых чисел, ты не можешь положить туда текст. Python же говорит: «Расслабься, клади что хочешь». Ты можешь написать `x = 10`, а следующей строкой `x = "Привет"`. Переменная просто поменяет свой тип на лету.

---

### Ключевые моменты (Резюме)

*   **Переменная** — это «коробка» с именем для хранения данных.
*   Чтобы создать переменную, используй `=`: `имя = значение`.
*   **`int`** — это целые числа (для математики).
*   **`str`** — это строки (текст в кавычках).
*   **`5 + 5`** равно `10` (математика), а **`'5' + '5'`** равно `'55'` (склеивание текста).
*   Нельзя просто так складывать текст и числа — компьютер выдаст ошибку.

**Домашнее задание для мозга:**
Попробуй угадать, что выведет этот код, не запуская его:
```python
a = '10'
b = '20'
c = 5
print(a + b)
print(c * 3)
```
*(Подсказка: умножение строки на число в Python тоже работает интересно, но это тема следующего урока!)*
Copied to clipboard!