Skip to content

Commit 4143047

Browse files
committed
update content
Signed-off-by: Kirill Mokevnin <mokevnin@gmail.com>
1 parent bd8f3ab commit 4143047

188 files changed

Lines changed: 1322 additions & 1244 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,60 @@
1-
![Hello World](./assets/hello-world.png)
2-
3-
Изучение нового языка программирования традиционно начинается с 'Hello, World!'. Это простая программа, которая выводит приветствие на экран и заодно знакомит с новым языком — его синтаксисом и структурой программы.
1+
Изучение нового языка программирования традиционно начинается с программы 'Hello, World!'. Это простая программа, которая выводит приветствие на экран и знакомит с синтаксисом и структурой нового языка.
42

53
```text
64
Hello, World!
75
```
86

9-
Этой традиции уже больше сорока лет, поэтому и мы не будем нарушать ее. В первом уроке мы напишем программу `Hello, World!`. На Python это программа выглядит так:
7+
![Hello World](./assets/hello-world.png)
8+
9+
10+
Этой традиции уже больше сорока лет, и мы тоже начнем с нее. В первом уроке мы напишем программу `Hello, World!`. На Python это программа выглядит так:
1011

1112
```python
1213
print('Hello, World!')
1314
```
1415

15-
`print()` — это команда, которая работает по определённому шаблону: в скобках указывается текст для вывода на экран. Мы можем передавать туда любой другой текст.
16-
17-
```text
18-
Код Интерпретатор Экран
19-
┌──────────┐ ┌─────────────┐ ┌──────────────┐
20-
│ print(…) │ ──→ │ Python │ ──→ │ Hello, World!│
21-
└──────────┘ └─────────────┘ └──────────────┘
22-
```
16+
Команда `print()` выводит на экран текст, указанный в скобках. Вместо примера можно написать любой другой текст.
2317

2418
```python
2519
print('Хекслет - школа программирования')
2620
```
2721

28-
Команда остаётся той же, меняется только содержимое скобок. Чтобы программа понимала, что это именно текст, он заключается в кавычки. Можно использовать одинарные `'...'` или двойные `"..."`, главное — чтобы открывающая и закрывающая кавычки совпадали.
22+
Команда остается той же, меняется только содержимое скобок. Чтобы программа понимала, что это именно текст, он заключается в кавычки. Можно использовать одинарные `'...'` или двойные `"..."`, но открывающая и закрывающая кавычки должны совпадать.
2923

3024
```python
3125
print("Хекслет - школа программирования")
3226
```
3327

34-
По принятому в Python стандарту оформления кода (PEP 8) рекомендуется использовать одинарные кавычки для строк, если внутри них нет апострофа. Это делает код более единообразным.
28+
По принятому в Python стандарту оформления кода (PEP 8) рекомендуется использовать одинарные кавычки для строк. Если внутри строки есть апостроф, одинарные кавычки сломают синтаксис, поэтому в таких случаях используют двойные.
29+
30+
```python
31+
print("it's a Python") # апостроф внутри, поэтому двойные кавычки
32+
```
3533

3634
## Значение символов
3735

38-
Программирование — это не просто текст на английском. Код состоит из команд, и каждая из них должна быть написана в определённой форме. Для этого используются не только буквы, но и специальные символы: кавычки `'` и `"`, скобки `()`, запятая `,`, восклицательный знак `!`. Они не случайные — каждый символ имеет своё значение. Если пропустить знак или перепутать его, программа не запустится.
36+
Код состоит из команд, и каждая из них должна быть написана в определенной форме. Помимо букв, в коде важны кавычки `'` и `"`, скобки `()` и знаки препинания. Пропущенный или перепутанный знак приведет к тому, что программа не запустится. Попробуйте определить, какая ошибка допущено в каждой из строк?
37+
38+
```python
39+
print("it's a Python"
40+
print(it's a Python")
41+
prin("it's a Python")
42+
print('it's a Python")
43+
prInt("it's a Python")
44+
```
3945

40-
Даже небольшое отличие, например одна лишняя буква или другой знак, может привести к тому, что программа не будет работать. Это относится и к такому понятию, как регистр — различию между большими и маленькими буквами. Если в обычном тексте `Привет` и `привет` выглядят одинаково, то для Python (как и других языков) это разные слова. Поэтому `print`, `Print` и `PRINT` — это разные команды, и сработает только первый вариант.
46+
Даже небольшое отличие, например одна лишняя буква или другой знак, может привести к тому, что программа не будет работать. Это относится и к регистру, то есть к различию между большими и маленькими буквами. Если в обычном тексте `Привет` и `привет` выглядят одинаково, то для Python это разные слова. Python считает `print`, `Print` и `PRINT` разными командами, и сработает только первый вариант.
4147

4248
## Где практиковаться
4349

44-
Обучение программированию происходит эффективнее, когда помимо чтения теории и выполнении заданий, вы будете практиковаться вызывая код в специальной среде (интерактивная оболочка или REPL), где можно выполнять код на Python построчно. Регулярно повторяйте все что вы видите в уроке [в интерактивной консоли Python](https://pyodide.org/en/stable/console.html)
50+
Теория усваивается лучше, когда параллельно запускаешь код и видишь результат. Для этого подходит интерактивная оболочка Python (REPL), где команды выполняются построчно. Все, что встречается в уроке, стоит пробовать [в интерактивной консоли Python](https://pyodide.org/en/stable/console.html).
51+
52+
Как это работает технически? Любой написанный код передается в интерпретатор Python, который этот код выполняет и выводит на экран результат его работы.
53+
54+
```text
55+
Код Интерпретатор Экран
56+
┌──────────┐ ┌─────────────┐ ┌──────────────┐
57+
print(…) │ ──→ │ Python │ ──→ │ Hello, World!│
58+
└──────────┘ └─────────────┘ └──────────────┘
59+
```
60+
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
# You know nothing, Jon Snow!
1+
# TODO: добавить функцию приветствия
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
Создайте комментарий с текстом: `You know nothing, Jon Snow!`
1+
Добавьте в файл TODO-комментарий с текстом: `TODO: добавить функцию приветствия`
2+
3+
Такие комментарии помечают место в коде, которое нужно доработать позже. Это один из самых распространенных видов комментариев в реальных проектах.

modules/10-basics/20-comments/ru/README.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
Кроме самого кода, в исходных файлах часто можно встретить комментарии — это строки, которые не обрабатываются интерпретатором. Они нужны для программистов: чтобы пояснить, как работает код, отметить, где есть ошибки, или напомнить себе и другим, что нужно доделать.
1+
Кроме самого кода, в исходных файлах часто можно встретить комментарии. Это строки, которые интерпретатор не обрабатывает. Программисты пишут их, чтобы пояснить, как работает код, отметить ошибки или напомнить, что нужно доделать.
22

33
```python
44
# Удалить строку ниже после реализации задачи по регистрации
55
print(10)
66
```
77

8-
В Python все комментарии однострочные. Они начинаются со специального символа #, после которого может идти любой текст. Всё, что написано после #, интерпретатор игнорирует.
8+
В Python все комментарии однострочные. Они начинаются со специального символа #, после которого может идти любой текст. Все, что написано после #, интерпретатор игнорирует.
99

1010
```text
1111
# комментарий ──→ [ пропущено интерпретатором ]
1212
print('hello') ──→ [ выполнено → hello ]
13-
# ещё один ──→ [ пропущено интерпретатором ]
13+
# еще один ──→ [ пропущено интерпретатором ]
1414
```
1515

1616
Комментарий может занимать всю строку:
@@ -34,9 +34,7 @@ print('I am the King') # For Lannisters!
3434
print('I am the King')
3535
```
3636

37-
Они не влияют на выполнение программы, но делают код понятнее. Комментарии помогают команде быстрее разобраться в чужом коде и не забыть важные детали в собственном.
38-
39-
> Хорошее правило: пишите код так, чтобы он был понятен без комментариев, но если что-то требует пояснения — не стесняйтесь комментировать.
37+
Интерпретатор игнорирует комментарии. Разработчики благодаря им быстрее разбираются в чужом коде и не забывают важные детали в собственном.
4038

4139
## Служебные комментарии
4240

@@ -48,12 +46,12 @@ print('I am the King')
4846
# END
4947
```
5048

51-
*BEGIN* и *END* здесь это обычные комментарии, которые никак не влияют на работу программы. Они нужны для того, чтобы показать место, где нужно писать код задания - между ними.
49+
*BEGIN* и *END* здесь это обычные комментарии, которые никак не влияют на работу программы. Они показывают, куда писать код задания.
5250

5351
```python
5452
# BEGIN
5553
<здесь ваше решение>
5654
# END
5755
```
5856

59-
Проще говоря: видите *BEGIN* и *END*пишите между ними, остальное не трогайте.
57+
Увидев *BEGIN* и *END*, пишите свой код между ними, остальное оставляйте без изменений.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
def test():
22
with open("index.py") as file:
33
comment = file.read().rstrip()
4-
assert comment == "# You know nothing, Jon Snow!"
4+
assert comment == "# TODO: добавить функцию приветствия"
55
print(comment)
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
print("Robert")
2-
print("Stannis")
3-
print("Renly")
1+
print("Заказ №1337")
2+
print("Статус: доставляется")
3+
print("Примерный срок: 2 дня")
Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
Выведите на экран друг за другом три имени: *Robert*, *Stannis*, *Renly*. В результате на экране должно отобразиться:
1+
Выведите на экран статус доставки посылки — три строки, каждая отдельным вызовом `print()`:
22

33
```text
4-
Robert
5-
Stannis
6-
Renly
4+
Заказ №1337
5+
Статус: доставляется
6+
Примерный срок: 2 дня
77
```
8-
9-
Для каждого имени используйте свой собственный вызов `print()`.

modules/10-basics/30-instructions/ru/README.md

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
![Инструкции](./assets/instructions.png)
2-
3-
Когда мы готовим блюдо, то следуем рецепту шаг за шагом. Пропустим этап — и результат будет отличаться от ожидаемого. В программировании работает тот же принцип: чёткий порядок инструкций определяет, как работает программа.
4-
5-
Инструкция (или оператор) — это команда для компьютера. Она говорит: «сделай что-то прямо сейчас». Интерпретатор Python (специальная программа, которая понимает и выполняет код) выполняет код сверху вниз, по строкам. Он обрабатывает каждую инструкцию по очереди, как если бы читал рецепт по шагам.
1+
Команду `print('Hexlet')` мы можем назвать инструкцией, она говорит интерпретатору Python что нужно делать. Таких инструкций может быть сколько угодно. Каждая из них выполняется после того, как закончилась предыдущая и так мы из простых элементов получаем сколь угодно большую и сложную программу.
62

73
```text
84
Инструкция 1: print('Hello') → выполнена
@@ -12,7 +8,7 @@
128
Инструкция 3: print('!') → выполнена
139
```
1410

15-
Вот пример кода с двумя инструкциями. Эти строки говорят компьютеру: «Выведи фразу на экран».
11+
Вот пример кода с двумя инструкциями. Эти строки говорят компьютеру вывести фразы на экран.
1612

1713
```python
1814
print('Mother of Dragons.') # Первая инструкция
@@ -28,14 +24,14 @@ Dracarys!
2824

2925
## Порядок имеет значение
3026

31-
Интерпретатор Python исполняет код в строгом порядке — как вы его написали. Если поменять местами строки:
27+
Интерпретатор Python выполняет код строго в том порядке, в котором вы его написали. Если поменять строки местами:
3228

3329
```python
3430
print('Dracarys!')
3531
print('Mother of Dragons.')
3632
```
3733

38-
то и на экране они поменяются:
34+
на экране они тоже поменяются:
3935

4036
```text
4137
Dracarys!
@@ -44,10 +40,30 @@ Mother of Dragons.
4440

4541
## Альтернативная форма записи
4642

47-
Обычно инструкции пишутся на отдельных строках, но Python допускает объединение нескольких инструкций в одну строку с помощью ;:
43+
Обычно инструкции пишут на отдельных строках, но Python позволяет объединить несколько инструкций в одну строку с помощью `;`:
4844

4945
```python
5046
print('Mother of Dragons.'); print('Dracarys!');
5147
```
5248

53-
Обе версии работают одинаково, но второй вариант хуже читается. В реальных проектах принято писать инструкции построчно — это повышает читаемость и упрощает поддержку кода.
49+
Обе версии работают одинаково, но второй вариант читать сложнее. Поэтому инструкции почти всегда пишут по одной на строку.
50+
51+
## Зачем это нужно
52+
53+
Сейчас мы пишем очень простые программы, но со временем они начнут усложняться и один из самых важных навыков, который поможет их понимать, это способность разбивать (в голове) программу на независимые инструкции. Только так можно разобраться в том, что в коде происходит. Ниже пример для привлечения внимание, понимать его пока не надо:
54+
55+
```python
56+
def is_prime(number: int) -> bool:
57+
if number < 2:
58+
return False
59+
60+
divider = 2
61+
62+
while divider <= number / 2:
63+
if number % divider == 0:
64+
return False
65+
66+
divider += 1
67+
68+
return True
69+
```

modules/10-basics/30-instructions/test_code.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22

33

44
def test(capsys):
5-
expected = "Robert\nStannis\nRenly"
5+
expected = "Заказ №1337\nСтатус: доставляется\nПримерный срок: 2 дня"
66
expect_output(capsys, expected)

0 commit comments

Comments
 (0)