hello_world.py
message = "Hello Python world!"
❶
print(message)
Отступ команды
print
в точке
не нужен, потому что эта строка не подчинена
предшествующей; Python сообщает об ошибке:
File "hello_world.py", line 2
print(message)
^
IndentationError: unexpected indent
Чтобы избежать непредвиденных ошибок с отступами, используйте их только там,
где для этого существуют конкретные причины. В тех программах, которые вы пи-
шете на этой стадии изучения Python, отступы нужны только в строках действий,
повторяемых для каждого элемента в цикле
for
.
Лишние отступы после цикла
Если вы случайно снабдите отступом код, который должен выполняться
после
за-
вершения цикла, то этот код будет выполнен для каждого элемента. Иногда Python
выводит сообщение об ошибке, но часто дело ограничивается простой логической
ошибкой.
70
Глава 4 • Работа со списками
Например, что произойдет, если случайно снабдить отступом строку с выводом
завершающего приветствия для группы фокусников?
magicians.py
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(f"{magician.title()}, that was a great trick!")
print(f"I can't wait to see your next trick, {magician.title()}.\n")
❶
print("Thank you everyone, that was a great magic show!")
Так как строка
имеет отступ, сообщение будет продублировано для каждого
фокусника в списке:
Alice, that was a great trick!
I can't wait to see your next trick, Alice.
Thank you everyone, that was a great magic show!
David, that was a great trick!
I can't wait to see your next trick, David.
Thank you everyone, that was a great magic show!
Carolina, that was a great trick!
I can't wait to see your next trick, Carolina.
Thank you everyone, that was a great magic show!
Это еще один пример логической ошибки наподобие описанной в разделе «Про-
пущенные отступы в других строках». Python не знает, что вы пытаетесь сде-
лать в своем коде, поэтому он просто выполняет весь код, не нарушающий
правил синтаксиса. Если действие, которое должно выполняться один раз, вы-
полняется многократно, проверьте, нет ли лишнего отступа в соответствующей
строке кода.
Пропущенное двоеточие
Двоеточие в конце команды
for
сообщает Python, что следующая строка является
началом цикла.
magicians = ['alice', 'david', 'carolina']
❶
for magician in magicians
print(magician)
Если вы случайно забудете поставить двоеточие, как в примере
, произойдет
синтаксическая ошибка, так как полученная команда нарушает правила языка.
И хотя такие ошибки легко исправляются, найти их бывает достаточно трудно.
Вы не поверите, сколько времени тратят программисты на поиск подобных «одно-
символьных» ошибок. Поиск таких ошибок усложняется еще и тем, что человек
обычно склонен видеть то, что он ожидает увидеть.
Создание числовых списков
Достарыңызбен бөлісу: |