Python: техники циклов

В программировании на Python есть два вида циклов — цикл for и цикл while. Используя эти циклы вместе с операторами управления циклом, такими как break и continue, мы можем создавать различные формы цикла.

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

Мы можем создать бесконечный цикл с помощью оператора while. Если условие цикла while всегда истинно (True), мы получаем бесконечный цикл.

Пример #1: бесконечный цикл с помощью while

# Пример бесконечного цикла
# нажмите Ctrl + c, чтобы выйти из цикла

while True:
   num = int(input("Enter an integer: "))
   print("The double of",num,"is",2 * num)

Вывод

Enter an integer: 3
The double of 3 is 6
Enter an integer: 5
The double of 5 is 10
Enter an integer: 6
The double of 6 is 12
Enter an integer:
Traceback (most recent call last):

Цикл с условием в начале

Это обычный цикл while без операторов break. Условие цикла while находится в начале, и цикл завершается, когда это условие становится False.

Блок-схема цикла с условием в начале

Техника цикла: цикл с условием в начале

Пример #2: цикл с условием в начале

# Программа, иллюстрирующая цикл с условием в начале

# Попробуйте разные числа
n = 10

# Раскомментируйте, чтобы получить ввод от пользователя
#n = int(input("Enter n: "))

# инициализируем сумму и счётчик
sum = 0
i = 1

while i <= n:
   sum = sum + i
   i = i+1    # обновляем счётчик

# выводим сумму
print("The sum is",sum)

При запуске программы вывод будет:

The sum is 55

Цикл с условием в середине

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

Блок-схема цикла с условием в середине

Техника цикла: цикл с условием в середине

Пример #3: цикл с условием в середине

# Программа, иллюстрирующая цикл с условием в середине.
# Принимаем ввод от пользователя, пока не будет введена гласная

vowels = "aeiouAEIOU"

# бесконечный цикл
while True:
   v = input("Enter a vowel: ")
   # условие в середине
   if v in vowels:
       break
   print("That is not a vowel. Try again!")

print("Thank you!")

Вывод

Enter a vowel: r
That is not a vowel. Try again!
Enter a vowel: 6
That is not a vowel. Try again!
Enter a vowel: ,
That is not a vowel. Try again!
Enter a vowel: u
Thank you!

Цикл с условием в конце

Такой тип цикла гарантирует, что тело цикла будет выполнено хотя бы один раз. Его можно реализовать с помощью бесконечного цикла с условным break в конце. Это похоже на цикл do…while в C.

Блок-схема цикла с условием в конце

Техника цикла: цикл с условием в конце

Пример #4: цикл с условием в конце

# Программа на Python, иллюстрирующая цикл с условием в конце
# Бросаем кубик, пока пользователь не решит выйти

# импортируем модуль random
import random

while True:
   input("Press enter to roll the dice")

   # получаем число от 1 до 6
   num = random.randint(1,6)
   print("You got",num)
   option = input("Roll again?(y/n) ")

   # условие
   if option == 'n':
       break

Вывод

Press enter to roll the dice
You got 1
Roll again?(y/n) y
Press enter to roll the dice
You got 5
Roll again?(y/n) n