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

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

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

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

Задача«Секретное сообщение»

Вы работаете в отделе дешифровки и перехватили сообщение вражеского агента. Известно, что для маскировки в сообщение добавляется много "шума" — лишних символов. Ваш старший товарищ выяснил ключ к шифру: настоящая информация содержится только в заглавных русских гласных буквах (А, О, У, Ы, Э, Я, Е, Ё, Ю, И) и цифрах (0-9). Все остальные символы — это помехи.

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

Формат ввода

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

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

Символы расшифрованного сообщения (тип: строка), каждый на новой строке. Если в исходной строке нет значащих символов, программа ничего не выводит.

Пример

Ввод

вхОжУ в здАниЕ. кОд 7701. жду УкАзАний.

Вывод

О
У
А
Е
7
7
0
1
У
А
А

Подсказка

Основы цикла 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
Решение разработчика
# Получаем зашифрованное сообщение от пользователя
encrypted_message = input()

# Создаем строку со всеми "правильными" символами для удобства проверки
# Это заглавные русские гласные и все цифры
valid_chars = 'АОУЫЭЯЕЁЮИ0123456789'

# Начинаем цикл, который перебирает каждый символ в полученной строке
for char in encrypted_message:
    # Проверяем, есть ли текущий символ в нашей строке с "правильными" символами
    if char in valid_chars:
        # Если символ "правильный", выводим его на экран
        print(char)

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

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

AD

Реклама

red-snake blue-snake green-snake

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

Помощник ИИ

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