• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 3. Цикл for

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«Лабиринт»

Представь, что ты — искатель приключений, заблудившийся в древних катакомбах. У тебя есть карта, которая на самом деле является просто списком участков, по которым ты проходишь один за другим. Каждый участок на карте имеет свое название, например: "стена", "ловушка", "пустой зал" или, что самое важное, "выход".

Твоя задача — написать программу, которая поможет тебе быстро найти выход. Программа должна просматривать карту (список участков) по порядку. Как только она находит участок с названием "выход", она должна немедленно остановиться и сообщить, под каким номером (индексом) в твоем списке находится этот спасительный участок. Если ты пройдешь по всей карте и так и не найдешь выход, программа должна сообщить, что выход не найден.

Формат ввода

целое (число колличество строк)

Формат Вывода

Строка с сообщением о найденном выходе и его номере (тип данных: строка / string), либо сообщение о том, что выход не найден (тип данных: строка / string).

Пример

Ввод

4
стена
ловушка
выход
сокровище

Вывод

Выход найден в комнате под номером: 3

Подсказка

Основы цикла for

Цикл for в Python — это ваш основной инструмент для перебора элементов в любой последовательности. Представьте, что у вас есть коробка с разными предметами. Цикл for позволяет вам брать по одному предмету, что-то с ним делать и переходить к следующему, пока предметы в коробке не закончатся.

Он используется для итерации по последовательностям, таким как списки, строки, кортежи, множества или даже ключи в словаре. Для каждого элемента последовательности выполняется один и тот же блок кода.

Синтаксис:

for элемент in последовательность:
    # блок кода, который будет выполняться для каждого элемента
    # ВАЖНО: этот блок должен иметь отступ!

Здесь элемент — это временная переменная, которой на каждой итерации присваивается очередное значение из последовательности. Вы можете назвать эту переменную как угодно, но лучше выбирать осмысленное имя (например, фрукт для списка фруктов или буква для строки).

Итерация по списку

Список — это упорядоченная коллекция элементов. Цикл for пройдет по нему от первого элемента до последнего.

фрукты = ['яблоко', 'банан', 'вишня']
for фрукт in фрукты:
    print(фрукт)

Вывод:

яблоко
банан
вишня

Итерация по строке

Строка — это, по сути, последовательность символов. Поэтому цикл for может так же легко перебирать и её.

слово = "Python"
for буква in слово:
    print(буква)

Вывод:

P
y
t
h
o
n

Управление циклом: break и continue

Иногда вам не нужно проходить весь цикл до конца. Для этого существуют специальные операторы.

Оператор break

Оператор break используется для немедленного и полного завершения цикла. Как только программа встречает break, она тут же выходит из цикла и продолжает выполнение со следующей строки кода после него.

Полезный совет: break незаменим, когда вы что-то ищете. Как только вы нашли то, что искали, нет смысла продолжать поиск.

Пример: У нас есть список чисел, и мы хотим найти первое четное число и остановить выполнение цикла, как только оно будет найдено.

numbers = [1, 3, 5, 6, 7, 9, 10]
for num in numbers:
    if num % 2 == 0:  # Проверка на четность
        print(f"Найдено первое четное число: {num}")
        break  # Немедленно выходим из цикла
print("Цикл завершен.")

Вывод:

Найдено первое четное число: 6
Цикл завершен.

Обратите внимание, что числа 7, 9 и 10 не были проверены, так как цикл был прерван на числе 6.

Оператор continue

Оператор continue используется для пропуска текущей итерации и немедленного перехода к следующей. Весь код, который находится в цикле после continue, для текущего элемента выполняться не будет.

Полезный совет: continue очень удобен для "фильтрации" данных внутри цикла. Если текущий элемент вам не подходит по какому-то критерию, вы просто пропускаете его и переходите к следующему.

Пример: У нас есть список чисел, и мы хотим вывести все числа, кроме четных.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
    if num % 2 == 0:  # Проверка на четность
        continue  # Если число четное, пропускаем print() и идем к следующему числу
    print(num)

Вывод:

1
3
5
7
9

Когда num было равно 2, 4, 6 и т.д., условие if выполнялось, continue пропускал команду print(num), и цикл сразу начинал новую итерацию.

Разница между break и continue в двух словах

  • break: "Стоп, машина!". Полностью останавливает цикл.
  • continue: "Этот не подходит, давай следующего!". Пропускает только текущий шаг.

Блок else в цикле for

Цикл for может иметь необязательный блок else. Этот блок выполняется только в том случае, если цикл завершил все свои итерации естественным образом, то есть не был прерван оператором break.

Полезный совет: Это очень мощный инструмент для поисковых задач. Блок else позволяет легко обработать ситуацию, когда поиск завершился, но ничего не было найдено.

Пример 1: Цикл завершился нормально

for число in range(3):
    print(число)
else:
    print("Цикл завершен без прерываний.")

Вывод:

0
1
2
Цикл завершен без прерываний.

Пример 2: Цикл прерван оператором break

for число in range(3):
    if число == 1:
        print("Нашли 1, прерываем цикл.")
        break
    print(число)
else:
    # Этот блок не выполнится, так как был break
    print("Цикл завершен без прерываний.")

Вывод:

0
Нашли 1, прерываем цикл.

Практические примеры

Сумма всех чисел в списке

Это классическая задача для понимания работы с циклом и накопления результата.

числа = [1, 2, 3, 4, 5]
сумма = 0  # Инициализируем переменную для хранения суммы ДО цикла
for число in числа:
    сумма += число # На каждой итерации добавляем текущее число к общей сумме
print(f'Сумма: {сумма}')  # Выводим итоговый результат ПОСЛЕ цикла

Вывод: Сумма: 15

Полезный совет: Хотя этот способ отлично демонстрирует работу цикла, в реальном коде для нахождения суммы элементов списка лучше использовать встроенную функцию sum(): print(sum(числа)). Это короче и эффективнее.

Поиск максимального числа в списке

Здесь мы предполагаем, что первый элемент является максимальным, а затем в цикле сравниваем его со всеми остальными.

числа = [1, 7, 3, 9, 5]
максимальное = числа[0] # Принимаем первый элемент за временный максимум
for число in числа:
    if число > максимальное: # Если находим число больше нашего максимума...
        максимальное = число # ...то обновляем максимум
print(f'Максимальное: {максимальное}')

Вывод: Максимальное: 9

Полезный совет: Как и в случае с суммой, в Python есть встроенная функция max() для этой задачи: print(max(числа)). Знание этих функций экономит время, но понимание алгоритма их работы с помощью цикла for является ключевым навыком для программиста.

main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Тест 10
Решение разработчика
a = int(input())
for i in range(a):
    if input()=="выход":
        print(f"Выход найден в комнате под номером: {i+1}")
        break
else:
    print("Выход не найден.")

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, обьяснить то, что тебе не понятно, а так же о текущей задаче!