Цикл вайл в c: Операторы цикла в языке Си : for, while, do…while

Python с нуля — часть 5: циклы – цикл while

Python с нуля — часть 5: циклы – цикл while

Цикл while в Python будет выполнять заданное выражение или блок кода до тех пор, пока заданное условие будет считаться истиной (true).

Синтаксис

Синтаксис цикла while в Python такой:

while условие:
   действие(я)

Тут действие(я) могут быть либо одним выражением, или набором выражений – блоком кода. Условие можно быть любым выражением, а условие будет считаться истиной (true), если результат не равен нулю или не пустой. Цикл будет выполняться пока условие будет считаться истиной.

Когда условие будет считаться как ложь (false) – программа передаст выполнение следующему после цикла участку кода.

В Python все выражения, имеющие одинаковые отступы в одной конструкции будет считаться единым блоком кода.

Ключевым моментом цикла while является то, что он может вообще не быть запущен при выполнении программы.

Если выражение проверено и его результат – ложь, то всё тело цикла будет пропущено, и будет выполнено следующее после цикла выражение.

Пример
count = 0
while (count < 9):
   print 'The count is:', count
   count = count + 1
print "Good bye!"

Результат выполнения:

The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!

Бесконечный цикл while

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

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

var = 1
while var == 1 :  # This constructs an infinite loop
   num = raw_input("Enter a number  :")
   print "You entered: ", num
print "Good bye!"

Будучи запущенным, такой код приведёт к такому результату:

$ . CTraceback (most recent call last):
  File "./1.py", line 5, in <module>
    num = raw_input("Enter a number  :")
KeyboardInterrupt

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

Использование оператора else с циклом while

В Python допустимо использование оператора else, связанного с циклом:

  • если оператор else используется с циклом for – он будет выполнен, когда список для цикла будет завершен;
  • при использовании else вместе с циклом while – он будет использован, когда условие примет значение ложь (false).

В следующем примере демонстрирует ся использование оператора else с циклом

while, который выводит сообщение до тех пор, пока счётчик меньше 5, после чего будет выполнение действие оператора else:

count = 0
while count < 5:
   print count, " is  less than 5"
   count = count + 1
else:
   print count, " is not less than 5"

Результат его выполнения:

0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5

Цикл while с одним выражением

По аналогии с оператором if – если цикл while содержит единственное действие, то оно может быть помещено в той же строке:

flag = 1
while (flag): print 'Given flag is really true!'
print "Good bye!"

24 185 views

More results. ..

Exact matches only

Exact matches only

Search in title

Search in title

Search in content

Search in content

Search in excerpt

Hidden

Hidden

Navigation

a

Самое читаемое

  • CentOS: установка, настройка Zabbix-agent и добавление нового хоста в мониторинг — 507 241 views
  • MySQL/MariaDB: наиболее используемые команды, примеры — 289 292 views
  • BASH: описание циклов for, while, until и примеры использования — 152 295 views
  • Команда find и её опции в примерах — 139 729 views
  • Карта сайта — 137 823 views

Архив месяца

Февраль 2023
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
2728 

Архивы по годам

Архивы по годам Выберите месяц Февраль 2023  (2) Январь 2023  (2) Декабрь 2022  (1) Октябрь 2022  (4) Сентябрь 2022  (1) Июнь 2022  (1) Май 2022  (1) Апрель 2022  (1) Март 2022  (2) Январь 2022  (1) Декабрь 2021  (3) Ноябрь 2021  (8) Октябрь 2021  (4) Сентябрь 2021  (5) Август 2021  (5) Июль 2021  (6) Июнь 2021  (6) Май 2021  (6) Апрель 2021  (11) Март 2021  (8) Февраль 2021  (6) Январь 2021  (1) Декабрь 2020  (1) Ноябрь 2020  (9) Октябрь 2020  (9) Сентябрь 2020  (4) Август 2020  (8) Июль 2020  (4) Июнь 2020  (3) Май 2020  (5) Апрель 2020  (9) Март 2020  (8) Февраль 2020  (9) Январь 2020  (2) Декабрь 2019  (9) Ноябрь 2019  (9) Октябрь 2019  (11) Сентябрь 2019  (11) Август 2019  (10) Июль 2019  (2) Июнь 2019  (4) Май 2019  (9) Апрель 2019  (13) Март 2019  (32) Февраль 2019  (20) Январь 2019  (10) Декабрь 2018  (9) Ноябрь 2018  (12) Октябрь 2018  (15) Сентябрь 2018  (12) Август 2018  (14) Июль 2018  (17) Июнь 2018  (18) Май 2018  (21) Апрель 2018  (6) Март 2018  (18) Февраль 2018  (7) Январь 2018  (13) Декабрь 2017  (14) Ноябрь 2017  (6) Октябрь 2017  (24) Сентябрь 2017  (13) Август 2017  (15) Июль 2017  (11) Июнь 2017  (11) Май 2017  (11) Апрель 2017  (7) Март 2017  (18) Февраль 2017  (13) Январь 2017  (14) Декабрь 2016  (12) Ноябрь 2016  (15) Октябрь 2016  (13) Сентябрь 2016  (21) Август 2016  (19) Июль 2016  (14) Июнь 2016  (8) Май 2016  (24) Апрель 2016  (15) Март 2016  (19) Февраль 2016  (21) Январь 2016  (19) Декабрь 2015  (17) Ноябрь 2015  (17) Октябрь 2015  (14) Сентябрь 2015  (13) Август 2015  (1) Июль 2015  (20) Июнь 2015  (23) Май 2015  (26) Апрель 2015  (28) Март 2015  (30) Февраль 2015  (26) Январь 2015  (24) Декабрь 2014  (31) Ноябрь 2014  (21) Октябрь 2014  (28) Сентябрь 2014  (23) Август 2014  (31) Июль 2014  (23) Июнь 2014  (11) Май 2014  (14) Апрель 2014  (8) Март 2014  (11) Февраль 2014  (11) Январь 2014  (11) Декабрь 2013  (12) Ноябрь 2013  (23) Октябрь 2013  (20) Сентябрь 2013  (30) Август 2013  (20) Июль 2013  (6) Июнь 2013  (9) Май 2013  (5) Апрель 2013  (13) Март 2013  (22) Февраль 2013  (36) Январь 2013  (10) Декабрь 2012  (4) Ноябрь 2012  (8) Октябрь 2012  (13) Сентябрь 2012  (29) Август 2012  (24) Июль 2012  (18) Июнь 2012  (2) Май 2012  (4) Март 2012  (5) Февраль 2012  (5) Январь 2012  (25) Декабрь 2011  (15) Ноябрь 2011  (6) Август 2011  (13)

Iconic One Theme | Powered by WordPress

Цикл while в Python — Python самоучитель

Цикл while позволяет повторить одно или несколько действий до тех пор, пока заданное условие остается истинным.  

Содержание страницы: 
1. Цикл while в Python
1.2. Как прервать цикл while
1.3. Флаги в цикле while
2.1. Команда break в цикле while
2.2. Команда continue в цикле while
3. Предотвращение зацикливания в цикле while
4. Цикл while со списками
5. Цикл while со словарями

 

 

 

 

 

 

 

 

 

 

1. Цикл while в Python 

Цикл while в Python используется во многих программах. Он позволяет выполнять программу пока остается истинным условие. Приведем пример перебора числовой последовательности в заданном диапазоне. 

>>> number = 1           # присваиваем начальное значение переменной
>>> while number <= 7:   # запускаем цикл при условии значение number <=7

. ..     print(number)    # выводим значение number при каждом цикле
…     number += 1      # после каждого цикла увеличиваем значение на 1

1
2
3
4
5
6
7

Вначале присваиваем значение переменной number. Затем запускаем цикл while до тех пор, пока значение переменной number не будет больше 7. При каждом проходе цикла выводим значение number и затем увеличиваем его на 1. Как только значение number станет больше 7 цикл прекращается. 

 

 

1.2. Как прервать цикл while на Python. 

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

Признаком завершения может быть как число, так и строка или символ. Приведем пример простого цикла while при котором пользователь вводит слово, а оно возвращается, наоборот.  

prompt = «\nВведите любое слово, и оно будет выведено наоборот»
prompt += «\nЕсли надоело введите команду ‘стоп’.\n»
message = »
while message != «стоп»:
    message = input(prompt)    
    if message != «стоп»:
        print(message[::-1])
    else:
        print(«Программа завершена»)

В начале создаем сообщение prompt (посказку) которое объясняет пользователю что за программа и как ее можно завершить. Затем создается переменная message и ей присваивается пустое значение. Важно переменную message определить до запуска цикла, присвоить ей можно любое значение или пустую строку.  При запуске цикла while идет проверка совпадает ли значение

message с условием продолжения цикла. При каждом выполнение цикла на экран выводятся правила цикла и условия его завершения. Дальше можно запустить команду if-else для проверки условия, если пользователь не ввел строку «стоп«, то выводим строку пользователя на экран в обратном порядке с помощью сегментации строки [: : -1].  

 

 

Введите любое слово, и оно будет выведено наоборот
Если надоело введите команду ‘стоп’.
python лучший язык программирования
яинавориммаргорп кызя йишчул nohtyp

Введите любое слово, и оно будет выведено наоборот
Если надоело введите команду ‘стоп’.
123456789
987654321

Введите любое слово, и оно будет выведено наоборот
Если надоело введите команду ‘стоп’.
стоп
Программа завершена

Пока пользователь не введет слово «стоп», цикл будет начинаться заново.

 

1.3. Флаги в цикле while на Python

Если программа должна выполняться при нескольких условиях, то лучше определить одну переменную — флаг. Переменная — флаг сообщает, должна ли программа выполняться при каждом цикле. Для флага достаточно определить два состояния True — в котором программа продолжит выполнение и False — завершение программы. В результате в начале цикла while достаточно проверить всего одно условие для запуска программы, а все остальные проверки организовать в остальном коде. 

prompt = «\nВведите любое слово, и оно будет выведено наоборот»
prompt += «\nЕсли надоело введите команду ‘стоп’\n»
active = True
while active:
    message = input(prompt)    
    if message == «стоп»:
        active = False
        print(«Программа завершена»)        
    else:
        print(message[::-1])

В примере переменной active присваивается True и программа будет выполняться до тех пор, пока переменная active не станет равной False. Результат работы этой программы ничем не будет отличаться от программы в разделе 1.2. Вот что получим мы на выходе. 

Введите любое слово, и оно будет выведено наоборот
Если надоело введите команду ‘стоп’
Python
nohtyP

Введите любое слово, и оно будет выведено наоборот
Если надоело введите команду ‘стоп’
стоп
Программа завершена

Программа завершится если пользователь введет «стоп». После этого переменная active становится равной False и действие цикла прекращается. 

 

 

2.1.  Команда break в цикле while на Python

С помощью команды break так же можно прервать цикл whileЦикл, который начинается с while True выполняется бесконечно, пока не будет выполнена команда break.

prompt = «\nВведите столицу США с заглавной буквы: «
active = True
while active:
    capital = input(prompt)
    if capital == ‘Вашингтон’:
        print(‘Совершенно верно’)
        break    
    else:
        print(f»{capital} не является столицей США»)

 

 

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

Введите столицу США с заглавной буквы: Лондон
Лондон не является столицей США

Введите столицу США с заглавной буквы: Москва
Москва не является столицей США

Введите столицу США с заглавной буквы: Вашингтон
Совершенно верно

 

2.2. Команда continue в цикле while на Python

Предположим, что вам нужно прервать цикл while при выполнение каких-либо условий и запустить его заново. Для этого можно воспользоваться командой continue. Напишем цикл while, который выводит только четные числа в диапазоне от 1 до 20:

>>> number = 0
>>> while number < 20:
…     number += 1
…     if number % 2 == 1:
…             continue
…     print(number, end=’ ‘)

2 4 6 8 10 12 14 16 18 20 >>>

Сначала создадим переменную number и присвоим ей начальное значение. После идет проверка условий цикла что значение number  меньше 20. При входе в цикл значение number увеличивается на 1 и затем команда if проверяет остаток от деления на 2. Если остаток равен одному, то число не четное, команда continue приказывает Python игнорировать остаток кода и цикл запускается заново. Если остаток от деления равен нулю, то число выводится на экран и так до того пока number будет равен 20, затем условия цикла while не будут выполнены и цикл прекратится.

 

 

3. Предотвращение зацикливания в циклах while на Python

В каждом цикле должно быть предусмотрена возможность завершения, чтобы цикл while не выполнялся бесконечно. Например, если в предыдущем примере мы пропустили бы строку number += 1 , то значение number всегда будет равно 0 и цикл будет продолжаться до бесконечности

>>> number = 0
>>> while number < 20:
. ..     if number % 2 == 1:
…             continue
…     print(number, end=’ ‘)

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …….

Для предотвращения зацикливания в терминальном окне введите Ctrl + C и всегда заранее проверяйте все условия цикла while и пути выхода из него. 

 

4. Цикл while со списками в Python

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

>>> login = [‘qwerty’, ‘arfa’, ‘bond’, ‘chelsy’, ‘qwerty’, ‘serg’, ‘cat’, ‘qwerty’]
>>> while ‘qwerty’ in login:
. ..     login.remove(‘qwerty’)

>>> print(login)
[‘arfa’, ‘bond’, ‘chelsy’, ‘serg’, ‘cat’]

В результате при запуске цикла while проверяется условия нахождения ‘qwerty‘ в списке login. Затем после первого удаления из списка, цикл запускается снова и Python проверяет наличие ‘qwerty‘ в списке заново и так до тех, пор пока будет выполняться условие цикла while.

 

 

5. Цикл while со словарями в Python 

При каждом проходе цикла while программа может выполнять любое действие. Так же, как и со списками, цикл while работает и со словарями. Создадим программу, которая будет запрашивать у посетителя имя и записывать ответы на заданный вопрос и в конце выводить словарь на экран:

interview = {}  
active = True
while active:
    # Запрашиваем имя и ответ на вопрос
    name = input(«\nКак вас зовут? «)
    question = input(«Какая марка автомобиля вам нравиться «)
    # Создаем список с ответами и добавляем первый ответ
    answers = []
    answers. append(question)
    # Ответ сохраняем в словаре «имя: список ответов»
    interview[name] = answers

    # Запускаем второй цикл с возможностью добавления еще ответов к одному пользователю
    active_2 = True
    while active_2:
        repeat = input(«Желаете добавить еще один автомобиль? (yes/no)  «)
        if repeat == ‘no’:
            active_2 = False
        else:
            question_n = input(«Какая марка автомобиля вам еще нравиться «)
            # Добавляем ответ в список
            answers.append(question_n)
            
    # Вопрос о продолжение опроса
    repeat = input(«Желаете продолжить опрос? (yes/no) «)
    if repeat == ‘no’:
        active = False
print(«\nОпрос завершен, все результаты:»)


# Переберем словарь и посмотрим ответы
for name, questions in interview. items():
    print(f»\n{name.title()} любит автомобили марки:»)
    for question in questions:
        print(f»\t{question.title()}»)

 

 

В начале программы создаем словарь interview в который в будущем будем добавлять посетителя с его ответами. Затем устанавливаем флаг продолжения опроса active = True. Пока active = True Python будет выполнять цикл while. При запуске цикла посетителю предлагается представиться и ввести ответ на заданный вопрос. Затем сразу создадим список ответов answers на всякий случай, если посетитель захочет дать несколько ответов и добавляем его в словарь. После запускаем второй цикл while с вопросом добавить еще один ответ. Количество ответов бесконечно, и посетитель сам решает, когда прервать программу. Если ответов больше нет, то возвращаемся к первому циклу и предлагаем ввести нового посетителя с опросом. После окончания цикла while выведем на экран всех посетителей и их ответы. Если запустить программу и ввести несколько пользователей с ответами, то результат будет выглядеть так:

Как вас зовут? bob
Какая марка автомобиля вам нравиться: audi
Желаете добавить еще один автомобиль? (yes/no)  yes
Какая марка автомобиля вам еще нравиться: bmw
Желаете добавить еще один автомобиль? (yes/no)  yes
Какая марка автомобиля вам еще нравиться: ford
Желаете добавить еще один автомобиль? (yes/no)  no
Желаете продолжить опрос? (yes/no) yes

Как вас зовут? Artem
Какая марка автомобиля вам нравиться: porshe
Желаете добавить еще один автомобиль? (yes/no)  no
Желаете продолжить опрос? (yes/no) no

Опрос завершен, все результаты:

Bob любит автомобили марки:
        Audi
        Bmw
        Ford

Artem любит автомобили марки:
        Porshe

 

Далее: Функции в Python

Назад: Множества в Python

 

Please enable JavaScript to view the comments powered by Disqus.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *