Особенности цикла while python

Особенности цикла while python

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

Синтаксис цикла while в простейшем случае выглядит так:

while условие: блок инструкций

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

Например, следующий фрагмент программы напечатает на экран квадраты всех целых чисел от 1 до 10. Видно, что цикл while может заменять цикл for . in range(. ) :

В этом примере переменная i внутри цикла изменяется от 1 до 10. Такая переменная, значение которой меняется с каждым новым проходом цикла, называется счетчиком. Заметим, что после выполнения этого фрагмента значение переменной i будет равно 11 , поскольку именно при i == 11 условие i

Вот еще один пример использования цикла while для определения количества цифр натурального числа n :

n = int(input()) length = 0 while n > 0: n //= 10 # это эквивалентно n = n // 10 length += 1 print(length)

В этом цикле мы отбрасываем по одной цифре числа, начиная с конца, что эквивалентно целочисленному делению на 10 ( n //= 10 ), при этом считаем в переменной length , сколько раз это было сделано.

В языке Питон есть и другой способ решения этой задачи: .

2. Инструкции управления циклом

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

Казалось бы, никакого смысла в этом нет, ведь эту же инструкцию можно просто написать после окончания цикла. Смысл появляется только вместе с инструкцией break . Если во время выполнения Питон встречает инструкцию break внутри цикла, то он сразу же прекращает выполнение этого цикла и выходит из него. При этом ветка else исполняться не будет. Разумеется, инструкцию break осмыленно вызывать только внутри инструкции if , то есть она должна выполняться только при выполнении какого-то особенного условия.

Приведем пример программы, которая считывает числа до тех пор, пока не встретит отрицательное число. При появлении отрицательного числа программа завершается. В первом варианте последовательность чисел завершается числом 0 (при считывании которого надо остановиться).

a = int(input()) while a != 0: if a < 0: print('Встретилось отрицательное число', a) break a = int(input()) else: print('Ни одного отрицательного числа не встретилось')

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

n = int(input()) for i in range(n): a = int(input()) if a < 0: print('Встретилось отрицательное число', a) break else: print('Ни одного отрицательного числа не встретилось')

Другая инструкция управления циклом — continue (продолжение цикла). Если эта инструкция встречается где-то посередине цикла, то пропускаются все оставшиеся инструкции до конца цикла, и исполнение цикла продолжается со следующей итерации.

Читайте также:  Variables в CSS3

Если инструкции break и continue содержатся внутри нескольких вложенных циклов, то они влияют лишь на исполнение самого внутреннего цикла. Вот не самый интеллектуальный пример, который это демонстрирует:

for i in range(3): for j in range(5): if j > i: break print(i, j)

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

n = int(input()) length = 0 while True: length += 1 n //= 10 if n == 0: break print('Длина числа равна', length)
n = int(input()) length = 0 while n != 0: length += 1 n //= 10 print('Длина числа равна', length)
n = int(input()) print('Длина числа равна', len(str(n)))

3. Множественное присваивание

В Питоне можно за одну инструкцию присваивания изменять значение сразу нескольких переменных. Делается это так:

Отличие двух способов состоит в том, что множественное присваивание в первом способе меняет значение двух переменных одновременно.

Если слева от знака «=» в множественном присваивании должны стоять через запятую имена переменных, то справа могут стоять произвольные выражения, разделённые запятыми. Главное, чтобы слева и справа от знака присваивания было одинаковое число элементов.

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

a = 1 b = 2 tmp = a a = b b = tmp print(a, b) # 2 1
a = 1 b = 2 a, b = b, a print(a, b) # 2 1

Источник

Цикл while в Python

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

Управление потоком инструкций: цикл While в Python

Как и другие языки программирования Python включает несколько инструкций для управления потоком. Одна из таких — if else. Еще одна — циклы. Циклы используются в тех случаях, когда нужно повторить блок кода определенное количество раз.

Что такое цикл while в Python?

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

while test_expression: body of while 

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

Читайте также:  Php mail remote smtp server

Рассмотрим пример, чтобы лучше понять.

a = 1 while a  10: print('Цикл выполнился', a, 'раз(а)') a = a+1 print('Цикл окончен') 
Цикл выполнился 1 раз Цикл выполнился 2 раз Цикл выполнился 3 раз Цикл выполнился 4 раз Цикл выполнился 5 раз Цикл выполнился 6 раз Цикл выполнился 7 раз Цикл выполнился 8 раз Цикл выполнился 9 раз Цикл окончен 

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

Бесконечный цикл while — это цикл, в котором условие никогда не становится ложным. Это значит, что тело исполняется снова и снова, а цикл никогда не заканчивается.

Следующий пример — бесконечный цикл:

a = 1 while a==1: b = input('Как тебя зовут?') print('Привет', b, ', Добро пожаловать') 

Если запустить этот код, то программа войдет в бесконечный цикл и будет снова и снова спрашивать имена. Цикл не остановится до тех пор, пока не нажать Ctrl + C .

Else в цикле while

В Python с циклами while также можно использовать инструкцию else . В этом случае блок в else исполняется, когда условие цикла становится ложным.

a = 1 while a  5: print('условие верно') a = a + 1 else: print('условие неверно') 

Этот пример демонстрирует принцип работы else в цикле while.

условие верно условие верно условие верно условие верно условие неверно 

Программа исполняет код цикла while до тех, пока условие истинно, то есть пока значение a меньше 5. Поскольку начальное значение a равно 1, а с каждым циклом оно увеличивается на 1, условие станет ложным, когда программа доберется до четвертой итерации — в этот момент значение a изменится с 4 до 5. Программа проверит условие еще раз, убедится, что оно ложно и исполнит блок else , отобразив «условие неверно».

Прерывания цикла while в Python

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

    Break — ключевое слово break прерывает цикл и передает управление в конец цикла

a = 1 while a  5: a += 1 if a == 3: break print(a) # 2 
a = 1 while a  5: a += 1 if a == 3: continue print(a) # 2, 4, 5 

Источник

Цикл while в Python

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

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

i = 0 # объявление переменной i для условия цикла
while i 5 : # ключевое слово 'while' и условие выполнение цикла
# тело цикла
print (i) # вывод значения переменной i
i += 1 # увеличение значения переменной i на единицу

Цикл while может быть бесконечным.

i = 0
while True : # условие всегда истинно
print (i)
i += 1

# Вывод:
>> 0
>> 1
>> 2
>> 3
>> 4
.
>> 999
.
# Это может продолжаться долго.

Выполнение цикла можно прерывать с помощью оператора break.

i = 0
while 1 : # условие всегда истинно
if i == 3 : # если i равно 3, то вызываем оператор break
break # оператор break прерывает выполнение цикла
print (i)
i += 1

Оператор continue начинает повторение цикла заново.

i = 0
while i 5 :
i += 1 #
if i % 2 == 1 : # если значение i нечетно, то вызываем оператор continue
continue # оператор continue начинает повторение цикла заново
# в случае вызова continue код ниже не выполнится
print (i)

Как и для цикла for, для цикла while мы можем записать конструкцию else.

x = 1
while x 5 :
print (x)
x += 1
else :
print ( 'Цикл завершен' )

Примеры

# Пользователь вводит числа A и B (A > B). Выведите все числа от A до B включительно.

A = int ( input ( 'Введите число: ' ))
B = int ( input ( 'Введите число: ' ))

# Пользователь вводит числа до тех пор, пока не введет 0.
# Выведите количество введенных чисел (0 считать не нужно).

n = int ( input ( 'Введите число: ' ))
counter = 0 # счетчик введенных чисел
while n: # n неявно преобразуется в тип bool
# если n равно 0, то выполнение цикла прервется
n = int ( input ( 'Введите число: ' )) # вводим очередное число
counter += 1 # увеличиваем счетчик

print ( f 'Количество чисел ' )

# Ввод:
>> 1
>> 10
>> 100
>> 1000
>> 0
# Вывод:
>> Количество чисел 4

# Пользователь вводит число N (N > 1). Выведите его наименьший делитель.
N = int ( input ( 'Введите число: ' ))
div = 2

while N % div != 0 :
div += 1
print ( f 'Наименьший делитель равен ' )

# Ввод:
>> 10
# Вывод:
>> Наименьший делитель равен 2

# Ввод:
>> 15
# Вывод:
>> Наименьший делитель равен 3

# Ввод:
>> 17
# Вывод:
>> Наименьший делитель равен 17

Решение задач

Пользователь вводит числа A и B (A > B). Выведите четные числа от A до B включительно.

Пользователь вводит числа A и B (A # Ввод:
>> 1
>> 15
# Вывод:
>> 3
>> 6
>> 9
>> 12
>> 15

Пользователь вводит числа до тех пор, пока не введет 0. Выведите сумму введенных чисел (0 считать не нужно).

# Ввод:
>> 1
>> 15
>> 10
>> 11
>> 2
>> 0
# Вывод:
>> Сумма равна: 39

Пользователь вводит числа до тех пор, пока не введет 0. Выведите максимальное введенное число (0 считать не нужно).

# Ввод:
>> 1
>> 15
>> 10
>> 11
>> 2
>> 0
# Вывод:
>> Максимум равен: 15

Пользователь вводит числа до тех пор, пока не введет 0. Выведите минимальное введенное число (0 считать не нужно).

# Ввод:
>> 1
>> 15
>> 10
>> 11
>> 2
>> 0 # 0 не входит в последовательность
# Вывод:
>> Минимум равен: 1

Пользователь вводит число N. Выведите факториал число N. Факториал числа N - это произведение всех чисел от 1 до N включительно. Например, факториал числа 5 равен 120.

7. Фибоначчи (финальный босс)

Пользователь вводит число N. Выведите N-ное по счету число Фибоначчи. Последовательность чисел Фибоначчи рассчитывается по такой формуле: F(1) = 1, F(2) = 1, F(K) = F(K-2) + F(K-1). Идея такая: каждое следующее число равно сумму двух предыдущих.

Первые 10 чисел последовательности: 1 1 2 3 5 8 13 21 34 55 .

Источник

Оцените статью