Изучаем Python | страница 46
. .print("I can't wait to see your next trick, " + magician.title() + ".\n")
. .
(1) . .print("Thank you everyone, that was a great magic show!")
Так как строка (1) имеет отступ, сообщение будет продублировано для каждого фокусника в списке (2):
Alice, that was a great trick!
I can't wait to see your next trick, Alice.
(2)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.
(2)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.
(2)Thank you everyone, that was a great magic show!
Это еще один пример логической ошибки, наподобие описанной в разделе «Пропущенные отступы в других строках» на с. 66. Python не знает, что вы пытаетесь сделать в своем коде, поэтому он просто выполняет весь код, не нарушающий правил синтаксиса. Если действие, которое должно выполняться один раз, выполняется многократно, проверьте, нет ли лишнего отступа в соответствующей строке кода.
Пропущенное двоеточие
Двоеточие в конце команды for сообщает Python, что следующая строка является началом цикла.
magicians = ['alice', 'david', 'carolina']
(1) for magician in magicians
. .print(magician)
Если вы случайно забудете поставить двоеточие, как в примере (1) , произойдет синтаксическая ошибка, так как полученная команда нарушает правила языка. И хотя такие ошибки легко исправляются, найти их бывает достаточно трудно. Вы не поверите, сколько времени тратят программисты на поиск подобных «односимвольных» ошибок. Поиск таких ошибок усложняется еще и тем, что человек склонен видеть то, что он ожидает увидеть.
Упражнения
4-1. Пицца: вспомните по крайней мере три ваши любимые разновидности пиццы. Сохраните их в списке и используйте цикл for для вывода всех названий.
• Измените цикл for так, чтобы вместо простого названия пиццы выводилось сообщение, включающее это название. Таким образом, для каждого элемента должна выводиться строка с простым текстом вида «I like pepperoni pizza».
• Добавьте в конец программы (после цикла for) строку с завершающим сообщением. Таким образом, вывод должен состоять из трех (и более) строк с названиями пиццы и дополнительного сообщения, скажем, «I really love pizza!».
4-2. Животные: создайте список из трех (и более) животных, обладающих общей характеристикой. Используйте цикл for для вывода названий всех животных.
• Измените программу так, чтобы вместо простого названия выводилось сообщение, включающее это название, например «A dog would make a great pet».