М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет49/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   45   46   47   48   49   50   51   52   ...   334
Байланысты:
Изучаем Python


Глава 4 • Работа со списками
заставляют разработчика писать аккуратно отформатированный код с четкой 
визуальной структурой. В более длинных программах Python могут встречаться 
блоки кода с отступами нескольких разных уровней. Эти уровни способствуют 
пониманию общей структуры программы.
Когда разработчики только начинают писать код, работа которого зависит от пра-
вильности отступов, в их коде нередко встречаются распространенные ошибки. На-
пример, иногда они расставляют отступы в коде, в котором эти отступы не нужны, 
или наоборот — забывают ставить отступы в блоках, в которых это необходимо. 
Несколько примеров помогут вам избежать подобных ошибок в будущем и успеш-
но исправлять их, когда они встретятся в ваших программах.
Итак, рассмотрим несколько типичных ошибок при использовании отступов.
Пропущенный отступ
Строка после команды 
for
в цикле всегда должна снабжаться отступом. Если вы 
забудете поставить отступ, Python напомнит вам об этом:
magicians.py
magicians = ['alice', 'david', 'carolina']
for magician in magicians:

print(magician)
Команда 
print
в точке 

должна иметь отступ, но здесь его нет. Когда Python ожи-
дает увидеть блок с отступом, но не находит его, появляется сообщение с указанием 
номера строки:
File "magicians.py", line 3 
print(magician) 

IndentationError: expected an indented block
Обычно для устранения подобных ошибок достаточно поставить отступ в строке 
(или строках), следующей непосредственно после команды 
for
.
Пропущенные отступы в других строках
Иногда цикл выполняется без ошибок, но не выдает ожидаемых результатов. Такое 
часто происходит, когда вы пытаетесь выполнить несколько операций в цикле, но 
забываете снабдить отступом некоторые из строк.
Например, вот что происходит, если вы забудете снабдить отступом вторую строку 
в цикле:
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician.title() + ", that was a great trick!")

print(f"I can't wait to see your next trick, {magician.title()}.\n")


Предотвращение ошибок с отступами
69
Команда 
print
в точке 

должна быть снабжена отступом, но поскольку Python 
находит хотя бы одну строку с отступом после команды 
for
, сообщение об ошибке 
не выдается. В результате первая команда 
print
будет выполнена для каждого 
элемента в списке, потому что в ней есть отступ. Вторая команда 
print
отступа не 
имеет, поэтому она будет выполнена только один раз после завершения цикла. Так 
как последним значением 
magician
является строка 
'carolina'
, второе сообщение 
будет выведено только с этим именем:
Alice, that was a great trick! 
David, that was a great trick! 
Carolina, that was a great trick! 
I can't wait to see your next trick, Carolina.
Это пример 
логической ошибки
. Код имеет действительный синтаксис, но он не 
приводит к желаемому результату, потому что проблема кроется в его логике. 
Если некоторое действие должно повторяться для каждого элемента в списке, но 
выполняется только один раз, проверьте, не нужно ли добавить отступы в строке 
или нескольких строках кода.
Лишние отступы
Если вы случайно поставите отступ в строке, в которой он не нужен, Python со-
общит об этом:


Достарыңызбен бөлісу:
1   ...   45   46   47   48   49   50   51   52   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет