Цикл for
Циклы и списки идут рука об руку. С помощью цикла while можно пройти по индексам списка, от 0 до последнего, и прочитать каждый элемент:
games = ["футбол", "теннис", "гольф"]
index = 0
while index < len(games):
print(games[index])
index += 1Вывод:
футбол
теннис
гольфЭто работает, но индексом приходится заниматься самому. Перебирать все элементы списка нужно так часто, что в Python для этого есть более простой цикл — for:
games = ["футбол", "теннис", "гольф"]
for game in games:
print(game)футбол
теннис
гольфЧитайте это как «для каждого game в games». На каждой итерации переменная game хранит следующий элемент списка: сначала "футбол", потом "теннис", затем "гольф". После последнего элемента цикл заканчивается. Индекс и len() вам вообще не нужны, а значит, и ошибиться с ними нельзя.
Строка с for сама создаёт переменную game, а имя вы выбираете как хотите: for x in games: работает точно так же. Хорошая привычка — называть её по одному элементу списка: game в games, name в names, price в prices. Тогда код читается почти как предложение.
Типичная оплошность — выводить внутри цикла весь список вместо элемента:
games = ["футбол", "теннис", "гольф"]
for game in games:
print(games)['футбол', 'теннис', 'гольф']
['футбол', 'теннис', 'гольф']
['футбол', 'теннис', 'гольф']Цикл по-прежнему выполняется три раза, но каждый раз выводит весь список. Внутри цикла используйте элемент: game, а не games.
Как и if с while, строка с for заканчивается двоеточием. Без него Python остановится с ошибкой SyntaxError: expected ':'.
Задание
- 1
Напишите цикл
for, который выводит каждый элемент спискаteammatesна отдельной строке. - 2
Ниже напишите второй цикл, который выводит участников команды с номерами:
1. Захар,2. Никита,3. Матвейи4. Эмилия. Перед циклом создайте переменнуюnumberсо значением1. В цикле выведите номер и имя с помощью f-строки, напримерf"{number}. {teammate}", а затем увеличьтеnumberна 1.