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
Практически все языки программирования позволяют оставлять в коде комментарии. Они никак не используются интерпретатором. Они нужны исключительно для людей, чтобы программист оставлял пометки для себя и для других программистов.
3
-
4
-
С их помощью добавляют пояснения, как работает код, какие ошибки нужно поправить или не забыть что-то добавить позже:
1
+
Кроме самого кода, в исходных файлах часто можно встретить комментарии — это строки, которые не обрабатываются интерпретатором. Они нужны для программистов: чтобы пояснить, как работает код, отметить, где есть ошибки, или напомнить себе и другим, что нужно доделать.
5
2
6
3
```python
7
4
# Удалить строку ниже после реализации задачи по регистрации
8
5
print(10)
9
6
```
10
7
11
-
Комментарии в Python начинаются со знака `#` и могут появляться в любом месте программы. Они могут занимать всю строку. Если одной строки мало, то создается несколько комментариев:
8
+
В Python все комментарии — однострочные. Они начинаются со специального символа #, после которого может идти любой текст. Всё, что написано после #, интерпретатор игнорирует.
9
+
10
+
Комментарий может занимать всю строку:
12
11
13
12
```python
14
13
# For Winterfell!
15
14
# For Lanisters!
16
15
```
17
16
18
-
Комментарий может находиться на строке после кода:
17
+
Или стоять в конце строки с кодом:
19
18
20
19
```python
21
20
print('I am the King') # For Lannisters!
22
21
```
22
+
23
+
Если нужно оставить длинное пояснение, используют несколько строк с #:
24
+
25
+
```python
26
+
# The night is dark and
27
+
# full of terrors.
28
+
print('I am the King')
29
+
```
30
+
31
+
Они не влияют на выполнение программы, но делают код понятнее. Комментарии помогают команде быстрее разобраться в чужом коде и не забыть важные детали в собственном.
32
+
33
+
> 📌 Хорошее правило: пишите код так, чтобы он был понятен без комментариев, но если что-то требует пояснения — не стесняйтесь комментировать.
Когда мы готовим блюдо, то четко следуем рецепту. Иначе еда окажется не такой, как ожидали. Это же правило действует и в программировании.
1
+
Когда мы готовим блюдо, то следуем рецепту шаг за шагом. Пропустим этап — и результат будет отличаться от ожидаемого. В программировании работает тот же принцип: чёткий порядок инструкций определяет, как работает программа.
2
2
3
-
Чтобы увидеть на экране ожидаемый результат, нужно дать компьютеру четкие и пошаговые указания. Это можно сделать с помощью инструкций. Инструкция — это команда для компьютера, единица выполнения. Код на Python в этом случае — это набор инструкций. Его можно представить в виде пошагового рецепта.
3
+
Инструкция (или оператор) — это команда для компьютера. Она говорит: «сделай что-то прямо сейчас».
4
4
5
-
Код на Python запускает **интерпретатор** — программу, которая выполняет инструкции строго по очереди. Как и шаги в рецепте, набор инструкций для интерпретатора пишутся по порядку и отделяются друг от друга переходом на следующую строку.
5
+
В Python программа состоит из инструкций — отдельных команд, которые выполняются компьютером. Это как пошаговый рецепт: одна строка — один шаг.
6
6
7
-
Разработчики должны понимать порядок действий в коде и уметь мысленно разделять программу на независимые части, удобные для анализа.
7
+
Интерпретатор Python (специальная программа, которая понимает и выполняет код) выполняет код сверху вниз, по строкам. Он обрабатывает каждую инструкцию по очереди, как если бы читал рецепт по шагам.
8
8
9
-
Посмотрим на пример кода с двумя инструкциями. При его запуске на экран последовательно выводятся два предложения:
💡 Эти строки говорят компьютеру: «Выведи фразу на экран».
17
+
18
+
Результат выполнения:
19
19
20
-
Выше мы говорили, что инструкции отделяются друг от друга переходом на новую строку. Но есть и другой способ: их можно разделить точкой с запятой — `;`:
20
+
<preclass='hexlet-basics-output'>
21
+
Mother of Dragons.
22
+
Dracarys!
23
+
</pre>
21
24
22
-
```python
23
-
print('Mother of Dragons.'); print('Drakarys!')
25
+
## Порядок имеет значение
26
+
27
+
Интерпретатор Python исполняет код в строгом порядке — как вы его написали.
28
+
Если поменять местами строки:
29
+
30
+
```Python
31
+
print('Dracarys!')
32
+
print('Mother of Dragons.')
24
33
```
25
34
26
-
Технической разницы между первым и вторым вариантом нет — интерпретатор поймет инструкции одинаково. Разница только в том, что человеку будет неудобно читать второй вариант.
35
+
то и на экране они поменяются:
36
+
37
+
<preclass='hexlet-basics-output'>
38
+
Mother of Dragons.
39
+
Dracarys!
40
+
</pre>
41
+
42
+
## Альтернативная форма записи
43
+
44
+
Обычно инструкции пишутся на отдельных строках, но Python допускает объединение нескольких инструкций в одну строку с помощью ;:
45
+
46
+
```Python
47
+
print('Mother of Dragons.'); print('Dracarys!')
48
+
```
27
49
28
-
Лучше инструкции располагать друг под другом. Так коллегам будет удобнее читать ваш код, обслуживать его и вносить изменения.
50
+
Обе версии работают одинаково, но второй вариант хуже читается. В реальных проектах принято писать инструкции построчно — это повышает читаемость и упрощает поддержку кода.
Copy file name to clipboardExpand all lines: modules/10-basics/40-testing/ru/README.md
+5-4
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,3 @@
1
-
2
1
Наш сайт автоматически проверяет ваши решения. Как это работает?
3
2
4
3
В самом простом случае система просто запускает ваш код и смотрит на то, что вывелось на экран. А потом сверяет с тем, что мы «ожидали» по заданию.
@@ -17,10 +16,12 @@
17
16
18
17
Самое главное начинается после двоеточия: «значение "10" не равно ожидаемому значению "35"». То есть правильная функция должна была выдать 35, но текущее решение работает неправильно и выдаёт 10.
19
18
20
-
Ещё стоит отметить, что если вы видите, что в редакторе уже присутствует какой-то код, а вместе с ним комментарии `BEGIN` и `END`, то обычно это подразумевает, что вам нужно писать ваш код между этими самыми BEGIN и END! Код, данный вам заранее, трогать не стоит: это может повлиять на проверку правильности решения. Проще говоря: видите строчки с комментариями `BEGIN` и `END` — пишите свой код между ними!
19
+
Если в редакторе уже есть какой-то код, окружённый комментариями *BEGIN* и *END*, это означает, что свой код нужно писать строго между ними. Код за пределами этих комментариев менять не стоит — это может повлиять на корректность проверки.
20
+
21
+
Проще говоря: видите *BEGIN* и *END* — пишите между ними, остальное не трогайте.
21
22
22
-
---
23
+
## Мой ошибка или нет?
23
24
24
25
Иногда в процессе решения будет казаться, что вы сделали все правильно, но система "капризничает" и не принимает решение. Подобное поведение практически исключено. Нерабочие тесты просто не могут попасть на сайт, они автоматически запускаются после каждого изменения. В подавляющем большинстве таких случаев, (а все наши проекты в сумме провели миллионы проверок за много лет), ошибка содержится в коде решения. Она может быть очень незаметной, вместо английской буквы случайно ввели русскую, вместо верхнего регистра использовали нижний или забыли вывести запятую. Другие случаи сложнее. Возможно ваше решение работает для одного набора входных данных, но не работает для другого. Поэтому всегда внимательно читайте условие задачи и вывод тестов. Там почти наверняка есть указание на ошибку.
25
26
26
-
Однако, если вы уверены в ошибке или нашли какую-то неточность, то вы всегда можете указать на нее. В конце каждой теории есть ссылка на содержимое урока на гитхабе (этот проект полностью открытый!). Перейдя туда, вы можете написать issue, посмотреть содержимое тестов (там видно, как вызывается ваш код) и даже отправить pullrequest. Если для вас это пока темный лес, то подключитесь в наше [сообщество в Telegram](https://t.me/hexletcommunity/3), там в канале *'Обратная связь'* мы всегда поможем.
27
+
Однако, если вы уверены в ошибке или нашли какую-то неточность, то вы всегда можете указать на нее в нашем [сообществе](https://ttttt.me/HexletLearningBot), там в канале _'Обратная связь'_ мы всегда поможем.
Если программа на Python написана с нарушением правил, интерпретатор остановит выполнение и выведет сообщение об ошибке. В этом сообщении указывается:
1
2
2
-
Если программа на Python написана синтаксически некорректно, то интерпретатор выводит на экран соответствующее сообщение. Также он указывает на файл и строчку, где произошла ошибка.
3
+
- Тип ошибки,
4
+
- строка, в которой она произошла,
5
+
- и (часто) точка, где интерпретатор «споткнулся».
3
6
4
-
**Синтаксическая ошибка** возникает в том случае, когда код записали с нарушением грамматических правил. В естественных языках грамматика важна, но текст с ошибками обычно можно понять и прочитать. В программировании все строго. Мельчайшее нарушение — и программа даже не запустится. Примером может быть забытая `;`, неправильно расставленные скобки и другие детали.
7
+
## Что такое синтаксическая ошибка?
5
8
6
-
Вот пример кода с синтаксической ошибкой:
9
+
Синтаксическая ошибка (SyntaxError) — это нарушение грамматических правил языка программирования. Такие ошибки возникают, если код написан с отклонением от ожидаемого формата: не закрыта строка, пропущена скобка, нарушен порядок символов и т.д.
10
+
11
+
В отличие от естественных языков, где текст с ошибками можно понять по контексту, в программировании правила строги: даже малейшее отклонение делает код неработоспособным.
Если запустить код выше, то мы увидим следующее сообщение:
19
+
В этом коде не закрыта кавычка, и Python не может завершить строку. Попробуем запустить программу:
15
20
16
21
```bash
17
22
$ python index.py
@@ -21,4 +26,23 @@ File "index.py", line 1
21
26
SyntaxError: EOLwhile scanning string literal
22
27
```
23
28
24
-
С одной стороны, ошибки синтаксиса — самые простые, потому что они связаны с грамматическими правилами написания кода, а не со смыслом кода. Их легко исправить: нужно лишь найти нарушение в записи. С другой стороны, интерпретатор не всегда может четко указать на это нарушение. Поэтому бывает, что забытую скобку нужно поставить не туда, куда указывает сообщение об ошибке.
29
+
Интерпретатор сообщает, что строка закончилась, но строковый литерал не завершён — EOLwhile scanning string literal.
30
+
31
+
## Почему такие ошибки считаются простыми?
32
+
33
+
Синтаксические ошибки:
34
+
35
+
- легко заметить — код часто подсвечивается в редакторе;
36
+
- легко исправить — достаточно вернуть пропущенный символ или поправить структуру.
37
+
38
+
Но есть и нюансы:
39
+
40
+
🧠 Интерпретатор не всегда указывает точно то место, где допущена ошибка.
41
+
Иногда проблема находится несколькими строками выше. Например, открытая, но не закрытая скобка на одной строке может «сломать» весь следующий код.
42
+
43
+
## Что делать при синтаксической ошибке?
44
+
45
+
- Читай сообщение об ошибке. Оно почти всегда содержит полезную информацию.
46
+
- Проверь строку, указанную в сообщении.
47
+
- Проверь строку до неё. Иногда ошибка «спрятана» чуть раньше.
48
+
- Используй редактор с подсветкой синтаксиса — он поможет сразу заметить проблемы (например, незакрытые кавычки или скобки).
0 commit comments