Программирование на Python продолжает завоевывать популярность благодаря своей простоте и доступности для начинающих программистов. Одной из важнейших концепций, с которой сталкиваются новички, является использование циклов. В этой статье мы рассмотрим цикл while
и его применение для считывания данных до определенного стоп-значения, а также обсудим бесконечные циклы.
Цикл while
Цикл while
в языке Python позволяет выполнять блок кода до тех пор, пока условие остается истинным (True
). Это мощный инструмент, который можно использовать в самых различных сценариях. Синтаксис цикла while
выглядит следующим образом:
while условие: # выполняется этот блок кода
Считывание данных до стоп значения
Один из распространенных случаев использования цикла while
— считывание данных от пользователя до тех пор, пока не будет введено определенное стоп-значение. Например, мы можем попросить пользователя вводить числа и завершить программу при вводе слова “стоп”. Рассмотрим пример:
stop_value = "стоп" user_input = "" print("Введите числа (введите 'стоп' чтобы завершить):") while user_input.lower() != stop_value: user_input = input() if user_input.lower() != stop_value: print(f"Вы ввели число: {user_input}") print("Программа завершена.")
В этом примере программа продолжает запрашивать у пользователя ввод чисел до тех пор, пока не будет введено слово “стоп”.
Бесконечный цикл
Иногда бывает необходимо создать бесконечный цикл. Как правило, такие циклы используются в серверных приложениях или программах реального времени. Для создания бесконечного цикла используется условие всегда истинное (True
). Пример бесконечного цикла:
while True: print("Это сообщение будет выводиться постоянно.")
Этот код будет выполнять печать сообщения на экран бесконечно долго или до тех пор, пока программа не будет принудительно остановлена (например, сочетанием клавиш Ctrl+C).
Для управления выполнением таких циклов часто используются дополнительные условия выхода из них внутри самого блока кода.
Заключение
Цикл while
является мощным инструментом в арсенале любого программиста на Python. Он позволяет реализовывать множество задач — от простого считывания данных от пользователя до сложных серверных приложений с бесконечными циклами.
Для более глубокого изучения возможностей языка Python и практических уроков рекомендуем ознакомиться с модулем 7.4 на нашем сайте.
Решения модуль 7.4 «Поколение Python»: курс для начинающих
Когда цикл
while
проверяет свое условие: до или после того, как он выполнит итерацию?
до
Сколько раз сообщение «Python awesome!» будет напечатано в приведенном ниже фрагменте кода?
count = 10
while count < 1:
print(‘Python awesome!’)
0
Сколько раз сообщение «Python awesome!» будет напечатано в приведенном ниже фрагменте кода?
count = 1
while count < 10:
print(‘Python awesome!’)
count += 1
9
Сколько раз сообщение «Python awesome!» будет напечатано в приведенном ниже фрагменте кода?
count = 1
while count < 10:
print(‘Python awesome!’)
бесконечно много раз
Какое число нужно написать вместо многоточия, чтобы цикл выполнился ровно 7 раз?
i = 5
while i <= …:
print(‘Python awesome!’)
i += 1
11
Что покажет приведенный ниже фрагмент кода?
i = 7
a = 5
while i < 11:
a += i
i += 2
print(a)
21
До КОНЦА 1
На вход программе подается последовательность слов, каждое слово на отдельной строке. Концом последовательности является слово «КОНЕЦ» (без кавычек). Напишите программу, которая выводит члены данной последовательности.
# Получаем слово и сохраняем их в переменной 'a'. a = input() # Запускаем цикл, который будет выполняться до тех пор, пока значение 'a' не станет равным 'КОНЕЦ'. while (a != 'КОНЕЦ'): print(a) # Выводим значение 'a' на экран. a = input() # Запрашиваем новое значение от пользователя и сохраняем его в переменной 'a'. Если новое значение 'a' равно 'КОНЕЦ', цикл завершается.
До КОНЦА 2
На вход программе подается последовательность слов, каждое слово на отдельной строке. Концом последовательности является слово «КОНЕЦ» или «конец» (большими или маленькими буквами, без кавычек). Напишите программу, которая выводит члены данной последовательности.
# Получаем слово и сохраняем его в переменной 'a' a = input() # Пока значение 'a' не равно 'КОНЕЦ' и не равно 'конец' (регистр имеет значение) while a != 'КОНЕЦ' and a != 'конец': print(a) # Вывод значения 'a' на экран a = input() # Запрос следующего слова
Количество членов
На вход программе подается последовательность слов, каждое слово на отдельной строке. Концом последовательности является одно из трех слов: «стоп», «хватит», «достаточно» (маленькими буквами, без кавычек). Напишите программу, которая выводит общее количество членов данной последовательности.
# Получаем первое слово и инициализируем счетчик 'k' значением 0 a, k = input(), 0 # Пока значение 'a' не равно одному из трех слов while a not in ('стоп', 'хватит', 'достаточно'): k += 1 # Увеличиваем счетчик 'k' на 1 для подсчета слов a = input() # Получаем следующее слово от пользователя # После выхода из цикла выводим количество введенных слов print(k)
Пока делимся
На вход программе подается последовательность целых чисел делящихся на 7, каждое число на отдельной строке. Концом последовательности является любое число не делящееся на 7. Напишите программу, которая выводит члены данной последовательности.
# получаем первое введенное число n = int(input()) # если введенное число делится без остатка то продолжаем цикл while n % 7 == 0: print(n) # выводи число n = int(input()) # получаем следующее число для проверки
Сумма чисел
На вход программе подается последовательность целых чисел, каждое число на отдельной строке. Концом последовательности является любое отрицательное число. Напишите программу, которая выводит сумму всех членов данной последовательности.
# получаем первое число a = int(input()) sum = 0 # переменная для подсчета суммы # пока введенное число положительное выполняем цикл while a >= 0: sum += a # считаем сумму a = int(input()) # получаем следующее число print(sum)
Количество пятерок
На вход программе подается последовательность целых чисел от 1 до 5, характеризующее оценку ученика, каждое число на отдельной строке. Концом последовательности является любое отрицательное число, либо число большее 5. Напишите программу, которая выводит количество пятерок.
# получаем первое введеное число a = int(input()) count = 0 # переменная для подсчета ко-ва пятерок # выполняем цикл пока число в диапозоне от 1 до 5 while 1 <= a <= 5: if a == 5: # проверяем пятерка это число или нет count += 1 # если пятерка то подсчитываем a = int(input()) # получаем следующее введеное число print(count)
Ведьмаку заплатите чеканной монетой
Всем известно, что ведьмак способен одолеть любых чудовищ, однако его услуги обойдутся недешево, к тому же ведьмак не принимает купюры, он принимает только чеканные монеты. В мире ведьмака существуют монеты с номиналами 1,5,10,25.
Напишите программу, которая определяет какое минимальное количество чеканных монет нужно заплатить ведьмаку.
# получаем цену услуги ведьмака price = int(input()) count=0 # переменная для хранения кол-ва монет # пока цена больше 0 выполняем цикл while price > 0: if price >= 25: # если цена больше или равен 25 price-=25 # вычитаем из нее 25 elif price >= 10: # иначе проверяем остаток больше или равен 10 price-=10 # если да отнимаем 10 elif price >= 5: # если остаток больше или равен 5 price-=5 # то вычитаем 5 else: # иначе остается менее 5 и вычетаем по монетке price-=1 # вычетаем по монетке count+=1 # считаем кол-во монет, за один цикл вычитаем только 1 номинал монеты в зависимости от условий print(count)
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы
#Спасибо огромное за пояснение, очень помогает понять код )
В «количество пятёрок» просто поменяйте sum на другое название или банально summ
здравствуйте, благодарю за решение, все понятно, но возник вопрос: почему (count+=1) стоит на одном уровне с условиями, а не через 2 табуляции в каждом из условий?
что бы не дублировать код, зачем нам писать в каждом условии если можно прописать один раз
Господи, спасибо, есть же люди которые шарят в этом, thanks ещё раз)
Как решить задание КОНЕЦ 1? Я ввожу, а степик говорит, что где-то ошибка, можете нормальное решение скинуть?
Решение представленное на сайте правильное
дайте пж решение на последнее задание а то там не правильно
Проверил, решение правильное.
Можете прочитайте комментарии к коду и на основе их сделать свое решение
классное решение
Последнее задание реашется тоже через цикл while
n = int(input())
k = 0
for i in (25, 10, 5, 1):
while n // i > 0:
k += 1
n -= i
print(k)
привет , когда следующий модуль?
Доброе утро!
Сегодня.
Модуль 7.5 из курса «Поколение python: курс для начинающих»: https://taskcode.ru/7-5-pokolenie-python/
спасибо
Здравствуйте! Пожалуйста)