Хелпикс

Главная

Контакты

Случайная статья





IV. Цикл while.



 

В программировании часто возникает необходимость повторять какие-либо действия более одного раза. Простейший пример из жизни – на сайтах при входе в аккаунт вас просят ввести логин и пароль и эти данные вы будете вводить до тех пор, пока не введёте корректную пару. Можно взять пример из области цифровой техники. Индикатор у вас на телефоне горит до тех пор, пока разговор не будет окончен. Лампочка на ноутбуке горит до тех пор, пока он не выключится.

Конструкция, которая позволяет повторять определённый участок кода более одного раза называется циклом. В языке pythonдва цикла, сегодня мы познакомимся с первым из них. Цикл while (рус. пока). В этом цикле нужный участок кода выполняется пока условие в заголовке цикла истинно.

Рассмотрим такую задачу.

Ваша программа должна считывать ввод пользователя, пока он не введёт слово «груша». Если пользователь вводит другое слово, ещё раз просим его ввести «груша» и так далее.

Итак, разберём по строкам:

1 – выводим сообщение в консоль

2 – считываем первый ввод пользователя и запоминаем в переменную word

3(1) – запускаем цикл и пишем в нём условие, можно перевести это как:

«Пока wordнеравно “груша”: » Далее 4 и 5 строки кода выполняются только в том случае, если условие из 3 строки окажется истинным.

    4 – выводим сообщение в консоль

5 – считываем второй ввод пользователя и запоминаем в переменную word

3(2) – возвращаемся в 3 строку и снова проверяем условие, если оно осталось истинным, то снова выполняем 4 и 5 строки. Если же условие стало ложным, то завершаем работу программы.

 

Таким образом 3 строка (заголовок цикла) срабатывает так же как условный оператор

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

Рассмотрим ещё один пример:

Проследим за выполнением программы ещё один раз:

1 – выводим сообщение в консоль

2 – считываем первый ввод пользователя

3(1) – заголовок цикла: пока число больше, или равно 0, мы выполняем цикл

    4(1) – поскольку в этом примере мы первым ввели число 19, то выполняем   4 и 5 строки. Выводим сообщение в консоль

    5(1) – считываем второй ввод пользователя

3(2) – проверяем условие ещё раз, 41 > = 0 -> True, значит

    4(2) – выводим сообщение в консоль

    5(2) считываем третий ввод

3(3) – проверяем условие, 0> = 0 -> True, значит

    4(3) – выводим сообщение в консоль

    5(3) – считываем четвёртый ввод

3(4) – проверяем условие, -1 > = 0 -> False. Заканчиваем работу цикла.

6 – поздравляем с корректным вводом и завершаем программу.

 

Так что общий вид цикла while будет таким:

while условие:

тело цикла

 

Заголовком цикла называется конструкция, в которой указывается ключевое слово и условие.

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

Итерацией цикла называется одно выполнение тела цикла. Например, в последнем примере наш цикла выполнил три итерации, а на четвёртой итерации он прервался. Так же нередки случаи, когда цикл не выполняет ни одной итерации. Это может произойти, когда изначально условие, записанное в заголовке – ложно. В последнем примере так бы произошло, если бы мы ещё в первом вводе дали программе отрицательное число.

 

Так же с циклом часто связано такое понятие как счётчик.

Счётчик это переменная, которая служит для подсчёта чего-либо. Это не какая-то специальная команда или функция языка python. Если вы, как программист, решаете, что вам необходима такая переменная, вы сами её вводите. Например, можно доработать последнюю задачу, что бы она подсчитывала кол-во неверно введённых чисел и в конце сообщала об этом.

В данном примере счётчиком послужила переменная counter.

Назвать счётчик можно, как и любую другую переменную.

Бывают ситуации, когда одним счётчиком не обойтись, тогда стоит ввести большее количество.

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

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

В общем виде данный алгоритм можно описать следующим образом.

Мы вводим переменную, в которую записываем заведомо наименьшее возможное значение – для максимума (и заведомо наибольшее – для минимума).

Запускаем цикл. В заголовке в данном случае стоит условие, которое обеспечит нам десятикратное повторение тела цикла. Обратите внимание – введён счетчик равный 10, в цикле каждую итерацию значение уменьшается на 1. Таким образом мы выполним 10 итераций.

В цикле мы проверяем, если новое введённое число окажется больше максимума, то это наш новый максимум. Именно поэтому мы ввели изначальное значение заведомо наименьшим, что бы при любом разумном вводе пользователя мы смогли сразу же перезаписать исходное значение переменной.

Домашнее задание:

1) Напишите программу, которая выведет на экран целые числа от 100 до 0 включительно, каждое на новой строке.

2) Напишите программу, которая считает ввод пользователя – одно натуральное число, а затем выведет все натуральные числа от 1 до этого числа включительно.

3) Напишите программу, которая найдёт модуль полу суммы всех введённых пользователем чисел. Сигналом остановки будет служить любое чётное число.

4) Пользователь вводит имена всех друзей, которых хочет пригласить на день рождения. Напишите программу, которая считает всех друзей пользователя и выведет на экран сообщение вида: «На мой день рождения я приглашены: Иван, Мария, Екатерина,.. Семён. »

5) Клиент заказал программу, которая позволит составить телефонную книгу. Требуемый функционал следующий:

Ваша программа должна считывать ввод пользователя в виде

1- Имя

2- День рождения в формате дд. мм. гггг

3- Телефон

И запоминать эти данные, что бы после ввода всех нужных данных (сигналом остановки служит ввод пустой строки) вывести получившуюся книгу в виде:

Имя – д. р. – телефон

Имя – д. р. – телефон

...

 

6) Напишите программу, которая считает у пользователя два целых числа.

Затем ваша программа должна запустить обратный отсчёт с введёнными числами, причём отсчёт всегда должен идти от большего числа к меньшему и включать оба числа.

 

 

Пример:

Ввод:

 

Вывод:

Обратный отсчёт!

Пуск!



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.