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



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


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

print(f"{magician.title()}, that was a great trick!")
Единственное отличие этого кода от предыдущего заключается в том, что в точке 

для каждого фокусника строится сообщение с его именем. При первом проходе 
цикла переменная 
magician
содержит значение 
'alice'
, поэтому Python начинает 
первое сообщение с имени 
'Alice'
. При втором проходе сообщение будет начи-
наться с имени 
'David'
, а при третьем — с имени 
'Carolina'
:
Alice, that was a great trick! 
David, that was a great trick! 
Carolina, that was a great trick!
Тело цикла 
for
может содержать сколько угодно строк кода. Каждая строка с на-
чальным отступом после строки 
for
magician
in
magicians
считается находящейся 
в цикле
и выполняется по одному разу для каждого значения в списке. Таким об-
разом, с каждым значением в списке можно выполнить любые операции на ваше 
усмотрение.
Включим в сообщение для каждого фокусника вторую строку:
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()
снабжены отступами, каждая строка будет выполнена 
по одному разу для каждого фокусника в списке. Символ новой строки (
"\n"
) во 
второй команде print 

вставляет пустую строку после каждого прохода цикла. 
В результате будет создан набор сообщений, аккуратно сгруппированных для 
каждого фокусника в списке:
Alice, that was a great trick! 
I can't wait to see your next trick, Alice. 
David, that was a great trick! 
I can't wait to see your next trick, David. 


Предотвращение ошибок с отступами
67
Ca
rolina, that was a great trick! 
I can't wait to see your next trick, Carolina.
Тело цикла 
for
может содержать сколько угодно строк кода. На практике часто 
требуется выполнить в цикле 
for
несколько разных операций для каждого эле-
мента списка.
Выполнение действий после цикла for
Что происходит после завершения цикла 
for
? Обычно программа выводит некую 
сводную информацию или переходит к другим операциям.
Каждая строка кода после цикла 
for
, не имеющая отступа, выполняется без по-
вторения. Допустим, вы хотите вывести сообщение для всей группы фокусников 
и поблагодарить их за превосходное представление. Чтобы вывести общее сообще-
ние после всех отдельных сообщений, разместите его после цикла 
for
без отступа:
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!")
Первые две команды 
print
повторяются по одному разу для каждого фокусника 
в списке, как было показано ранее. Но поскольку строка 

отступа не имеет, это 
сообщение выводится только один раз:
Alice, that was a great trick! 
I can't wait to see your next trick, Alice. 
David, that was a great trick! 
I can't wait to see your next trick, David. 
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!
При обработке данных в циклах 
for
завершающее сообщение позволяет подвести 
итог операции, выполненной со всем набором данных. Например, цикл 
for
может 
инициализировать игру, перебирая список персонажей и изображая каждого пер-
сонажа на экране. После цикла выполняется блок без отступа, который выводит 
кнопку 
Начать
игру
, после того как все персонажи появятся на экране.
Предотвращение ошибок с отступами
В Python связь одной строки кода с предшествующей строкой обозначается от-
ступами. В приведенных примерах строки, выводившие сообщения для отдельных 
фокусников, были частью цикла, потому что они были снабжены отступами. При-
менение отступов в Python сильно упрощает чтение кода. Фактически отступы 


68

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




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

    Басты бет