Python

Задачи на цикл while в Python

Цикл while нужен там, где количество повторов заранее неизвестно: пользователь вводит данные до команды остановки, пароль проверяется до успеха, меню работает до выхода

В каждой задаче важно следить за условием остановки. Если переменная внутри цикла не меняется, программа может зависнуть

Как работать с подборкой

Материал тренирует цикл while на практических сценариях, где for подходит хуже

Перед просмотром решения попробуйте написать хотя бы черновик. Если задача не идет, выпишите входные данные, ожидаемый результат и одно действие, которое нужно сделать первым

После решения измените данные и запустите код снова. Так вы быстрее увидите, где программа привязана только к одному примеру

Задачи с решениями

Задача 1. Счетчик до N через while

Условие: Выведите числа от 1 до N, используя while

Подсказка: Не забудьте увеличивать счетчик, иначе цикл станет бесконечным

Решение:

n = int(input("N: "))
current = 1

while current <= n:
    print(current)
    current += 1

Проверка: Проверьте N = 3

Задача 2. Сумма до нуля

Условие: Пользователь вводит числа, программа суммирует их, пока не введен 0

Подсказка: 0 здесь работает как сигнал остановки

Решение:

total = 0
number = int(input("Число: "))

while number != 0:
    total += number
    number = int(input("Число: "))

print(total)

Проверка: Введите 5, 7, 0 и получите 12

Задача 3. Угадай число

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

Подсказка: Внутри цикла дайте подсказку больше или меньше

Решение:

secret = 7
guess = int(input("Угадайте число: "))

while guess != secret:
    if guess < secret:
        print("Больше")
    else:
        print("Меньше")
    guess = int(input("Попробуйте еще раз: "))

print("Верно")

Проверка: Проверьте варианты 3, 10 и 7

Задача 4. Пароль с тремя попытками

Условие: Дайте пользователю три попытки ввести правильный пароль

Подсказка: Храните количество попыток в отдельной переменной

Решение:

password = "python123"
attempts = 3

while attempts > 0:
    user_password = input("Пароль: ")
    if user_password == password:
        print("Вход выполнен")
        break
    attempts -= 1
else:
    print("Попытки закончились")

Проверка: Проверьте правильный пароль со второй попытки

Задача 5. Цифры числа

Условие: Посчитайте сумму цифр положительного числа

Подсказка: Берите последнюю цифру через % 10 и убирайте ее через // 10

Решение:

number = int(input("Число: "))
total = 0

while number > 0:
    total += number % 10
    number //= 10

print(total)

Проверка: Для 1234 результат должен быть 10

Задача 6. Факториал

Условие: Посчитайте факториал числа через while

Подсказка: Начните result с 1, потому что это нейтральное значение для умножения

Решение:

n = int(input("N: "))
result = 1
current = 1

while current <= n:
    result *= current
    current += 1

print(result)

Проверка: Для 5 результат должен быть 120

Задача 7. Первое число больше 100

Условие: Увеличивайте число в два раза, пока оно не станет больше 100

Подсказка: Эта задача тренирует условие продолжения цикла

Решение:

number = int(input("Стартовое число: "))

while number <= 100:
    number *= 2

print(number)

Проверка: Проверьте стартовые числа 3 и 60

Задача 8. Меню команд

Условие: Показывайте меню, пока пользователь не введет команду exit

Подсказка: Так строятся простые консольные программы

Решение:

command = ""

while command != "exit":
    command = input("Команда: ")
    if command == "help":
        print("Доступные команды: help, exit")
    elif command != "exit":
        print("Неизвестная команда")

print("Программа завершена")

Проверка: Проверьте help, test и exit

Задача 9. Среднее значение до пустой строки

Условие: Пользователь вводит числа, пустая строка завершает ввод, программа считает среднее

Подсказка: Для пустой строки нельзя сразу делать int

Решение:

total = 0
count = 0
value = input("Число: ")

while value != "":
    total += int(value)
    count += 1
    value = input("Число: ")

if count > 0:
    print(total / count)
else:
    print("Нет чисел")

Проверка: Проверьте ввод 10, 20, пустая строка

Задача 10. Удаление задач из очереди

Условие: Пока в списке есть задачи, удаляйте первую и печатайте ее

Подсказка: while удобен, когда заранее неизвестно количество шагов

Решение:

tasks = ["письмо", "звонок", "отчет"]

while tasks:
    task = tasks.pop(0)
    print(f"Выполняю: {task}")

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

Задача 11. Обратный отсчет

Условие: Пользователь вводит число, программа считает вниз до нуля

Подсказка: Уменьшайте счетчик на один на каждом шаге

Решение:

number = int(input("Старт: "))

while number >= 0:
    print(number)
    number -= 1

Проверка: Для 3 программа должна вывести 3, 2, 1, 0

Задача 12. Подтверждение действия

Условие: Повторяйте вопрос, пока пользователь не введет yes или no

Подсказка: while помогает дождаться корректного ответа

Решение:

answer = input("Продолжить? yes/no: ").lower()

while answer not in ("yes", "no"):
    print("Введите yes или no")
    answer = input("Продолжить? yes/no: ").lower()

print(f"Ответ принят: {answer}")

Проверка: Проверьте варианты maybe, YES и no

По этой теме полезно отдельно посмотреть Составьте еженедельное расписание занятий, чтобы расширить контекст и сравнить подходы

По этой теме полезно отдельно посмотреть Аннотации типов для декораторов в Python, чтобы расширить контекст и сравнить подходы

Как проверять свои решения

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

Если код работает, объясните его словами. Скажите, какие данные приходят на вход, что хранится в переменных, где меняется результат и почему программа останавливается

Частые ошибки новичков

  • читать решение, но не запускать его руками
  • менять сразу несколько строк и не понимать, какая из них сломала код
  • называть переменные одной буквой там, где можно написать понятное имя
  • забывать проверять пустые строки, пустые списки и ноль
  • путать вывод через print и возврат результата через return
  • оставлять код рабочим только для одного заранее выбранного примера

Дополнительные задачи

Задача 13. Повтор ввода до правильного пароля

Условие: Запрашивайте пароль, пока пользователь не введет правильное значение

password = "python123"
user_input = ""

while user_input != password:
    user_input = input("Пароль: ")

print("Вход выполнен")

Проверка: Подумайте, нужен ли лимит попыток, если программа используется не в учебном примере

Задача 14. Меню команд

Условие: Показывайте меню, пока пользователь не выберет выход

while True:
    command = input("add/list/exit: ").strip().lower()

    if command == "add":
        print("Добавление")
    elif command == "list":
        print("Список")
    elif command == "exit":
        break
    else:
        print("Неизвестная команда")

Проверка: Добавьте команду help, которая выводит доступные действия

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x