Перебор
всего списка
67
элемента в списке, потому что в ней есть отступ. Вторая команда
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 со-
общит об этом:
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
выводит сообщение об ошибке, но часто дело ограничивается простой логической
ошибкой.
Например, что произойдет, если случайно снабдить отступом строку с выводом
завершающего приветствия для группы фокусников?
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician.title() + ", that was a great trick!")