Хелпикс

Главная

Контакты

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





«Циклы в языке Python»



Теоретическая часть

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

В языке программирования Python может быть реализовано два вида цикла:

− С предусловием – цикл while;

− С параметром – цикл for.

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

while< условие>:

< оператор1>

else:

< оператор2>

Частьelseявляется необязательной, она выполняется, когда управление передается за пределы цикла безиспользования инструкции break. Блок-схема работы цикла while представлена ниже на рисунке 67.

Рисунок 67 – Блок-схема цикла с предусловием while

Выполнение цикла while начинается с вычисления выражения. Если оно истинно (не равно false), выполняется оператор цикла. Если при первой проверке выражение равно false, цикл не выполнится ни разу. Тип выражения должен быть арифметическим или приводимым к нему. Если условие в цикле whileникогда не будет ложным, то не будетпричин остановки цикла и программа «зациклится». Чтобы этого не произошло, необходимо организовать момент выхода из цикла, то есть ложность выражения в заголовке. Так, например, изменяя значение какой-нибудь переменной в теле цикла, можно довести логическоевыражение до ложности. Обратите внимание, что операторы тела цикла должны быть отделены отступом.

Пример 1.

i = 5

whilei< 15:

print(i)

i+= 2

Интерфейс программыPyCharmс введёнными данными представлены ниже на рисунке 68:

 

Рисунок 68 – Результат работы программы

В данном примере организован перебор значений переменной iс шагом

Результаты работы программы представлены ниже на рисунке 69:

Рисунок 69 – Результат работы программы

2. Условие работы цикла i < 15. В теле цикла происходит изменение переменной i, поэтому цикл не будет бесконечным.

Пример 2.

a = 0

while a < 7:

print(" Python" )

a += 1

В данном примере цикл выполняется, пока истинно условие a < 7, значение переменной а меняется в теле цикла.

Результаты работы программы представлены ниже на рисунке 70:

Рисунок 70 – Результат работы программы

 

Второй цикл, используемый в языке Python – цикл с параметром. Синтаксис данного цикла представлен ниже:

for< переменная> in< объект>:

< оператор1>

else:

< оператор2>

Блок-схема работы цикла выглядит следующим образом:

Рисунок 71 – Блок-схема цикла с параметром

Этот цикл проходится по любому итерируемому объекту (например строке или списку), и во время каждого прохода выполняет тело цикла заданное число раз. Для обращенияк текущему элементу последовательности в теле цикла обычно используется переменная цикла, ее иногда называют управляющей переменной. В цикле for также используют необязательную часть else, которая работает точно так же, как и в циклах while, – она выполняется, если выход из цикла производится не инструкцией break (о которой будет рассказано ниже).

Часто для организации работы цикла с параметром forиспользуется функция range.

Функция range() что возвращает последовательность чисел, регулируемую количеством переданных в неё аргументов. Возможны следующие варианты обращения к данной функции:

· range(finish);

· range(start, finish);

· range(start, finish, step).

Здесь start – это первый элемент последовательности (включительно), finish – последний (не включительно), а step – разность между следующим и предыдущим членами последовательности.

Например, range(5) возвращается последовательность 0, 1, 2, 3, 4. Вызов range(2, 8) возвращается последовательность 2, 3, 4, 5, 6, 7.

Рассмотрим примеры организации работы цикла с параметром.

Пример 3.

for a in range(10):

print(a)

Результаты работы программы представлены ниже на рисунке 72:

Рисунок 72 – Результат работы программы

В данном примере цикл выводит на экран последовательность числе от 0 до 9 включительно.

Пример 4.

for c in range(0, 22, 3):

print(c, end=" " )

В данном примере выводится на экран последовательность числе от 0 до 21с шагом 3.

Результаты работы программы представлены ниже на рисунке 73:

Рисунок 73 – Результат работы программы

Также, говоря про работу циклов в языке Python, необходимо упомянуть про операторы continue, break, else.

Оператор continue используется для переходя на следующую итерацию цикла, пропуская следующего после него операторы тела цикла.

Пример 5.

fori in range(10):

ifi == 5:

continue

print(i * 2, end=' ')

Результаты работы программы представлены ниже на рисунке 74:

Рисунок 74 – Результат работы программы

 

В данном примере при равенстве переменной i==5 используется оператор continue, в результате чего пропускается оператор print(i * 2, end=' '). Поэтому число 10 не выводится на экран.

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

Пример 6.

foriinrange(10):

ifi == 5:

break

print(i * 2, end=' ')

Результаты работы программы представлены ниже на рисунке 75:

Рисунок 75 – Результат работы программы

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

Оператор else используется для проверки, был ли произведен выход из цикла инструкцией break, или же цикл завершился образом.

Пример 7.

fori in range(10):

ifi == 20:

break

print(i * 2, end=' ')

else:

print(" значение не найдено" )

Результаты работы программы представлены ниже на рисунке 76:

Рисунок 76 – Результат работы программы

В данном примере после вывода на экран последовательности от 0 до 18 на экран также выводится строка " значение не найдено", так как оператор continue не сработал.

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

Приведем еще несколько примеров работы с циклами for иwhile.

Пример 8. На тренировке спортсмен ежедневно пробегает некоторую дистанцию, с каждым днем увеличивая ее на 10%. Составить программу, определяющую по расстоянию, преодоленному спортсменом в первый день тренировки длину дистанции на k-ый день.

n= float(input(" Введите начальную дистанцию " ))

k= int(input(" Введите количество дней " ))

fori in range (k):

n+=n*0. 1

print(" конечная дистанция ", n)Результаты работы программы представлены ниже на рисунке 77:

Рисунок 77 – Результат работы программы

 

В данной задаче используется цикл for, так как известно количество повторов цикла – kдней. Внутри цикла идет увеличение переменной n, обозначающей длину дистанции, n+=n*0. 1.

Пример 9. Переведите введенное пользователем десятичное число в двоичное. Известно, что число меньше 256.

dec=int(input(" Введите десятичное число " ))

v=128

fori in range(1, 9):

ifdec> =v:

print('1', end='')

dec=dec-v

else:

print('0', end='')

v=v//2

Результаты работы программы представлены ниже на рисунке 78:

Рисунок 78 – Результат работы программы

 

В данном примере с помощью переменной vзадается вес старшего разряда, так как по условию число должно быть меньше 512, то старший разряд будет иметь значение 128. Для перевода десятичного числа из него каждый раз вычитается старший разряд, если это возможно, затем значение разряда уменьшается.

Пример 10. Разложить натуральное число на простые множители.

k=int(input(" Введите число " ))

print(k, '= ')

l=2

while not(k==1):

ifk%l==0:

   k=k/l

print(l, end=' ')

else:

   l+=1

Результаты работы программы представлены ниже на рисунке 79:

Рисунок 79 – Результат работы программы

 

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

 



  

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