В Python существует два типа циклов: for и while.
Циклы for перебирают заданную последовательность. Вот пример:
primes = [2, 3, 5, 7]
for prime in primes:
print(prime)
Циклы for могут перебирать последовательность чисел, используя функции "range" и "xrange". Разница между range и xrange заключается в том, что функция range возвращает новый список с числами из указанного диапазона, тогда как xrange возвращает итератор, что более эффективно. (В Python 3 используется функция range, которая действует как xrange). Обратите внимание, что функция range использует нумерацию, начиная с нуля.
# Выведет числа 0,1,2,3,4
for x in range(5):
print(x)
# Выведет 3,4,5
for x in range(3, 6):
print(x)
# Выведет 3,5,7
for x in range(3, 8, 2):
print(x)
Циклы while повторяются до тех пор, пока выполняется определенное условие. Например:
# Выведет 0,1,2,3,4
count = 0
while count < 5:
print(count)
count += 1 # Это то же самое, что count = count + 1
break используется для выхода из цикла for или while, тогда как continue используется, чтобы пропустить текущий блок и вернуться к оператору "for" или "while". Несколько примеров:
# Выведет 0,1,2,3,4
count = 0
while True:
print(count)
count += 1
if count >= 5:
break
# Выведет только нечетные числа - 1,3,5,7,9
for x in range(10):
# Проверка, является ли x четным
if x % 2 == 0:
continue
print(x)
В отличие от таких языков, как C, CPP, мы можем использовать else в циклах. Когда условие цикла "for" или "while" не выполняется, то выполняется код в "else". Если в цикле for выполняется оператор break, то часть "else" пропускается. Обратите внимание, что часть "else" выполняется даже при наличии оператора continue.
Вот несколько примеров:
# Выведет 0,1,2,3,4, а затем выведет "count value reached 5"
count=0
while(count<5):
print(count)
count +=1
else:
print("count value reached %d" %(count))
# Выведет 1,2,3,4
for i in range(1, 10):
if(i%5==0):
break
print(i)
else:
print("это не напечатается, потому что цикл for прерван оператором break, но не из-за провала условия")
Пройдитесь и выведите все четные числа из списка numbers в том порядке, в котором они получены. Не выводите числа, после 237 в последовательности.