You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Представьте, что нам нужно напечатать на экран фразу *Father!* два раза. Эту задачу можно решить так:
1
+
Представьте, что нужно напечатать фразу Father! два раза:
3
2
4
3
```python
5
4
print('Father!')
6
5
print('Father!')
7
6
```
8
7
9
-
В простейшем случае так и стоит поступить. Но если фраза *Father!* будет использоваться чаще двух раз, да еще и в разных частях программы, то придется ее везде повторять — это неудобно. Проблемы с таким подходом начнутся, когда понадобится изменить фразу, а такое происходит довольно часто. Нам придется найти все места с этой фразой и выполнить необходимую замену.
8
+
Такой способ вполне подойдёт, если фраза встречается всего пару раз. Но что, если она будет использоваться часто, в разных частях программы? Тогда придётся копировать одно и то же выражение снова и снова.
9
+
10
+
А что будет, если фразу нужно изменить — например, заменить _Father!_ на _Mother!_? Придётся искать и исправлять все вхождения вручную. Это неудобно и приводит к ошибкам.
11
+
12
+
## Что делать вместо копирования
10
13
11
-
А можно поступить по-другому. Чтобы не копировать выражение, достаточно создать с ней переменную:
14
+
Чтобы не дублировать одну и ту же строку, её можно сохранить в переменной:
12
15
13
16
```python
14
-
# greeting - переводится как приветствие
15
17
greeting ='Father!'
16
18
print(greeting)
17
19
print(greeting)
18
-
# => Father!
19
-
# => Father!
20
20
```
21
21
22
-
В строчке `greeting = 'Father!'` мы берем переменную с именем `greeting` и присваиваем ей значение `'Father!'`. Переменная указывает на данные, которые в нее записали. Благодаря этому, данные можно использовать многократно и не дублировать их постоянно.
22
+
Результат:
23
+
24
+
```python
25
+
Father!
26
+
Father!
27
+
```
28
+
29
+
Мы создали переменную с именем `greeting` и записали в неё строку _Father!_. Теперь вместо текста можно использовать имя переменной. Программа подставляет значение переменной туда, где она используется.
30
+
31
+
## Что такое переменная
32
+
33
+
Переменная — это имя, за которым прячутся данные. Она нужна, чтобы:
34
+
35
+
- Использовать одни и те же данные несколько раз;
36
+
- удобно обновлять значение в одном месте;
37
+
- сделать код понятнее.
38
+
39
+
Когда интерпретатор доходит до строки `print(greeting)`, он сначала подставляет содержимое переменной, а потом выполняет вывод.
40
+
41
+
## Имена переменных
42
+
43
+
Имена переменных придумывает сам программист. В Python можно использовать:
🔠 Важно: Python различает строчные и заглавные буквы. Переменные `greeting`, `Greeting` и `GREETING` — это три разные переменные.
52
+
53
+
### 💡 Рекомендации по именованию
54
+
55
+
Python-разработчики придерживаются определённых соглашений по стилю — стандарта PEP8:
56
+
57
+
- Используйте строчные буквы с подчёркиванием между словами:
58
+
59
+
✅ `user_name`, `error_message`, `greeting_text`
60
+
61
+
- Имена должны быть понятными — не a или x, а name, message, counter.
62
+
- Не используйте русские слова, даже если они записаны латиницей:
63
+
64
+
🚫 `privet`, `mama`, `stroka`
23
65
24
-
Когда переменная создана, можно ее использовать. Она подставляется в те места, где раньше стояла наша фраза. Когда код выполняется, интерпретатор доходит до строчки `print(greeting)` и подставляет содержимое переменной, а затем выполняет код.
66
+
✅ `greeting`, `text`, `title`
25
67
26
-
Для имени переменной используется любой набор допустимых символов, к которым относятся буквы английского алфавита, цифры и знак `_`. При этом цифру нельзя ставить в начале. Имена переменных регистрозависимы, то есть имя `hello` и имя `HELLO` — это два разных имени для двух разных переменных. Регистр в Python имеет важное значение, никогда не забывайте про него.
68
+
## Несколько переменных в программе
27
69
28
-
Количество создаваемых переменных неограниченно. Большие программы содержат десятки и сотни тысяч имен переменных. Вот как выглядят две переменные внутри одной программы:
70
+
В одной программе можно создать сколько угодно переменных. Каждая хранит свои данные и не мешает другим:
Чтобы программу было удобно читать, среди программистов принято создавать переменные как можно ближе к тому месту, где они используются. Теперь нужно разобраться, как их изменять.
84
+
Программисты стараются создавать переменные ближе к месту, где они используются. Это делает код более читаемым. Особенно важно это в больших программах, где переменных может быть десятки и сотни тысяч.
В упражнении определена переменная, внутри которой содержится строка. Переопределите значение этой переменной и присвойте ей строку, в которой расположите символы первоначальной строки в обратном порядке.
3
2
4
-
Обратите внимание: в данном задании вам предстоит писать код между строчками с комментариями `# BEGIN` и `# END` (об этом говорилось ранее, но это первый раз, когда вы встречаетесь с таким форматом).
3
+
Обратите внимание: в данном задании вам предстоит писать код между строчками с комментариями `# BEGIN` и `# END`
Здесь мы сначала записали в переменную одну строку (_Father!_), потом — другую (_Mother!_). Имя переменной не изменилось, но значение внутри стало другим.
15
+
16
+
## Зачем вообще менять значение?
17
+
18
+
В реальных программах переменные меняются постоянно. Вот несколько причин:
19
+
20
+
- Программа реагирует на действия пользователя. Например, пока вы вводите какие-то данные, в формы на сайте, они, в этот момент, вполне вероятно, постоянно меняют переменные, которые эти данные содержат
21
+
- Промежуточные результаты. Часто данные проходят через серию преобразований — на каждом этапе переменная обновляется новым значением. Подобный механизм даже есть в калькуляторах, когда промежуточные значения сохраняются с помощью клавиш `m+` или `m-`.
22
+
- Хранение состояния. Если вы пишете игру, то положение персонажа, его здоровье, счёт, текущий уровень — всё это переменные, которые постоянно меняются.
23
+
24
+
## Переменные создаются по мере использования
25
+
26
+
В Python переменную не нужно «объявлять заранее» — она появляется в момент, когда вы впервые записываете в неё значение:
27
+
28
+
```python
29
+
name ='Arya'# переменная создаётся здесь
30
+
```
31
+
32
+
Если потом вы снова напишете name = ..., это перезапишет старое значение. Так работает большинство современных языков программирования.
33
+
34
+
⚠️ Но важно помнить: переменную нельзя использовать раньше, чем она создана.
35
+
36
+
```python
37
+
print(name) # Ошибка! Переменная ещё не создана
38
+
name ='Arya'
39
+
```
40
+
41
+
Python не знает, что такое name, потому что вы ещё ничего туда не записали. При запуске программа остановится и покажет сообщение об ошибке.
42
+
43
+
✅ Правильный порядок:
44
+
45
+
```python
46
+
name ='Arya'# Сначала создаём
47
+
print(name) # Потом используем
48
+
```
49
+
50
+
## Почему это важно
51
+
52
+
Переменные — это гибкий способ хранить данные, которые могут изменяться в процессе выполнения программы. Благодаря этому можно писать программы, которые ведут себя по-разному в зависимости от условий, действий пользователя или результатов вычислений.
16
53
17
-
Имя осталось тем же, но внутри появились другие данные. Отметим, что переменные в Python не требуют специального объявления. Вместо этого переменная объявляется, когда ее впервые используют в программе.
54
+
Но у гибкости есть и обратная сторона. Иногда сложно сразу понять, что именно записано в переменную в тот или иной момент времени. Разработчику приходится отслеживать, где и как она изменилась — особенно если код длинный.
18
55
19
-
Переменные — мощная и в то же время рисковая вещь. Нельзя сразу с уверенностью сказать, что внутри нее записано — сначала надо проанализировать код, который находится перед переменной. Именно этим занимаются разработчики во время отладки, когда пытаются разобраться, почему программа работает не так, как задумано.
56
+
Именно это делают во время отладки — когда пытаются разобраться, почему программа работает не так, как задумано. Проверяют значения переменных, отслеживают порядок выполнения кода, ищут, где что-то пошло не так.
0 commit comments