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

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

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

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

Задача«Банкомат»

💻 Python

Представьте, что вы настраиваете программу для банкомата. В целях безопасности, при входе в личный кабинет, банкомат просит пользователя повторить определенную фразу заданное количество раз. Однако, чтобы не утомлять клиента, система безопасности установила лимит: нельзя просить повторить фразу более 10 раз.

Ваша задача — написать программу, которая:

  1. Считывает фразу, которую нужно повторить.
  2. Считывает количество требуемых повторений.
  3. Проверяет, не превышает ли количество повторений лимит в 10 раз.
  4. Если количество повторений 10 или меньше, программа выводит на экран заданную фразу указанное количество раз. Каждое повторение должно выводиться на новой строке.
  5. Если количество повторений больше 10, программа должна вывести одно сообщение об ошибке: "Ошибка: количество повторений не может превышать 10".

Формат ввода

Первая строка: фраза, которую задал банкомат (тип: строка).
Вторая строка: количество раз, которое нужно повторить фразу (тип: целое число).

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

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

Пример

Ввод

Подтверждаю
3

Вывод

Подтверждаю
Подтверждаю
Подтверждаю

Подсказка

Погружение в циклы: for и range()

Цикл for — это один из самых мощных и часто используемых инструментов в Python. Он позволяет вам повторять (или, как говорят программисты, итерировать) определенный блок кода заданное количество раз. Его главная идея — последовательно перебрать элементы из какой-либо коллекции (например, списка чисел, символов в строке и т.д.) и для каждого элемента выполнить одно и то же действие.

Основной синтаксис выглядит так:

for элемент in последовательность:
    # блок кода, который будет повторяться

Здесь последовательность может быть не только числами, но и, например, списком строк или просто строкой.

# Пример итерации по списку
for фрукт in ["яблоко", "банан", "вишня"]:
    print(фрукт)

# Пример итерации по строке
for буква in "Python":
    print(буква)

Генерация последовательностей с range()

Часто нам нужно выполнить код определенное количество раз. Для этого идеально подходит функция range(), которая создает последовательность чисел. Например, range(5) создает последовательность от 0 до 4 (то есть 0, 1, 2, 3, 4).

Объединяя for и range(), мы получаем классическую конструкцию для повторений:

for i in range(число):
    # блок кода

Давайте разберем эту конструкцию:

  • for — это ключевое слово, которое говорит Python, что мы начинаем цикл.
  • i — это переменная-счетчик. На каждом шаге цикла она будет принимать следующее значение из последовательности. Полезный совет: имя переменной может быть любым (i, j, k — это общепринятые соглашения для простых счетчиков), но если вы перебираете что-то конкретное, лучше дать осмысленное имя, например for student in students:.
  • in — ключевое слово, которое связывает переменную-счетчик и последовательность.
  • range(число) — вызов функции, которая создает последовательность целых чисел от 0 до число - 1. Важно помнить, что верхняя граница не включается.
  • Блок кода (с отступом) — это те команды, которые вы хотите выполнить для каждого числа в последовательности.

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

Вывод чисел от 0 до 4

for i in range(5):
    print(i)
# вывод: 0
# вывод: 1
# вывод: 2
# вывод: 3
# вывод: 4
  • range(5) создает невидимую для нас последовательность: 0, 1, 2, 3, 4.
  • Цикл for поочередно присваивает переменной i каждое из этих значений.
  • print(i) на каждом шаге печатает текущее значение i.

Повторное выполнение кода 5 раз

for i in range(5):
    print("Привет, мир!")
# вывод: Привет, мир!
# вывод: Привет, мир!
# вывод: Привет, мир!
# вывод: Привет, мир!
# вывод: Привет, мир!
  • range(5) снова создает последовательность 0, 1, 2, 3, 4.
  • Цикл for проходит по каждому из этих чисел, но в данном случае мы не используем значение переменной i внутри цикла. Мы просто используем цикл как счетчик, чтобы выполнить print("Привет, мир!") ровно 5 раз.

Суммирование чисел от 0 до 4

сумма = 0  # 1. Создаем "копилку" для суммы
for i in range(5):
    # 2. На каждом шаге добавляем в копилку текущее число
    сумма += i 
print(сумма) # 3. Показываем, что накопилось в итоге
# вывод: 10
  • сумма = 0 — инициализируем переменную сумма. Это критически важный шаг.
  • range(5) создает последовательность 0, 1, 2, 3, 4.
  • Цикл for проходит по каждому числу. На первом шаге сумма становится 0 + 0 = 0. На втором — 0 + 1 = 1. На третьем — 1 + 2 = 3. На четвертом — 3 + 3 = 6. На пятом — 6 + 4 = 10.
  • сумма += i — это сокращенная и более "пайтоничная" запись для сумма = сумма + i. Она увеличивает значение сумма на текущее значение i.
  • print(сумма) выводит итоговую сумму после того, как цикл полностью завершился.

Гибкость range(): параметры start, stop, step

Функция range() может принимать до трех параметров: start (начало), stop (конец) и step (шаг).

  • range(stop): создает последовательность от 0 до stop - 1.
  • range(start, stop): создает последовательность от start до stop - 1.
  • range(start, stop, step): создает последовательность от start до stop - 1 с шагом step.

Полезный совет: Шаг может быть отрицательным. Это позволяет генерировать последовательности в обратном порядке. В этом случае значение start должно быть больше stop.

  • range(5) -> 0, 1, 2, 3, 4
  • range(2, 6) -> 2, 3, 4, 5
  • range(1, 10, 2) -> 1, 3, 5, 7, 9
  • range(5, 0, -1) -> 5, 4, 3, 2, 1

Что такое инкремент и декремент?

Инкремент — это просто увеличение значения переменной, как правило, на 1. Декремент — это уменьшение значения переменной, как правило, на 1.

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

Инкремент в Python: оператор +=

Мы можем легко увеличить значение переменной, используя +=.

число = 5
# Увеличиваем значение переменной на 1
число += 1 
print(число) # выведет 6
  • число = 5 устанавливает начальное значение.
  • число += 1 — это элегантная сокращенная запись для число = число + 1. Она говорит: "возьми текущее значение число, прибавь к нему 1 и запиши результат обратно в число".

Декремент в Python: оператор -=

Аналогично инкременту, для декремента используется оператор -=.

число = 5
# Уменьшаем значение переменной на 1
число -= 1
print(число) # выведет 4
  • число = 5 устанавливает начальное значение.
  • число -= 1 — это сокращение для число = число - 1.

Другие полезные операторы

Этот принцип работает со всеми основными математическими операциями в Python. Вместо числа справа может быть и другая переменная (a += b).

a = 10
a += 5  # Эквивалентно a = a + 5   (a станет 15)
a -= 3  # Эквивалентно a = a - 3   (a станет 12)
a *= 2  # Эквивалентно a = a * 2   (a станет 24)
a /= 4  # Эквивалентно a = a / 4   (a станет 6.0)
a %= 5  # Эквивалентно a = a % 5   (a станет 1.0, остаток от деления 6 на 5)
a //= 3 # Эквивалентно a = a // 3  (a станет 0.0, целочисленное деление 1 на 3)

Ключевые идеи и полезные советы

  • Цикл for создан для перебора элементов в любой последовательности (списки, строки, range и т.д.).
  • Функция range() — ваш главный инструмент для создания последовательностей чисел для циклов. Помните, что она не включает верхнюю границу!
  • Инкремент (+=) и декремент (-=) — это стандартный и предпочтительный способ изменения числовых переменных в Python.
  • Осмысленные имена. Давайте переменным цикла понятные имена (for book in books:), это делает код гораздо более читаемым.
  • Практика — ключ к успеху! Попробуйте написать циклы для решения разных задач: найти сумму четных чисел, вывести таблицу умножения, напечатать лесенку из символов.
main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Решение разработчика
# Запрашиваем у пользователя фразу, которую нужно будет повторить.
# Функция input() считывает одну строку текста.
secret_phrase = input()

# Запрашиваем количество повторений.
# Функция input() считывает строку, а int() превращает её в целое число.
repeat_count = int(input())

# Это условие. Проверяем, больше ли введенное число, чем 10.
if repeat_count > 10:
    # Если условие истинно (число больше 10), выводим сообщение об ошибке.
    print("Ошибка: количество повторений не может превышать 10")
else:
    # Если условие ложно (число 10 или меньше), выполняется эта часть кода.
    # Запускаем цикл for. Он будет работать столько раз, сколько указано в repeat_count.
    # range(repeat_count) создает последовательность чисел от 0 до repeat_count-1.
    for i in range(repeat_count):
        # На каждом шаге цикла (итерации) выводим секретную фразу.
        print(secret_phrase)

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

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

AD

Реклама

red-snake blue-snake green-snake

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

Помощник ИИ

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