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