Циклы


В Python есть два типа циклов: for и while.

Цикл "for"

Циклы For повторяются по заданной последовательности. Вот пример:

primes = [2, 3, 5, 7] for prime in primes: print(prime)
1
2
3
простые числа = [ 2 , 3 , 5 , 7 ]
для простого числа в простых числах :
печать ( премьер )
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Циклы For могут перебирать последовательность чисел с помощью функций «range» и «xrange». Разница между range и xrange заключается в том, что функция range возвращает новый список с номерами из указанного диапазона, тогда как xrange возвращает итератор, который более эффективен. (Python 3 использует функцию диапазона, которая действует как xrange). Обратите внимание, что функция диапазона основана на нуле.

# Prints out the numbers 0,1,2,3,4 for x in range(5): print(x) # Prints out 3,4,5 for x in range(3, 6): print(x) # Prints out 3,5,7 for x in range(3, 8, 2): print(x)
1
2
3
4
5
6
7
8
9
10
11
# Распечатывает числа 0,1,2,3,4
для x в диапазоне ( 5 ) :
печать ( х )
# Распечатывает 3,4,5
для x в диапазоне ( 3 , 6 ) :
печать ( х )
# Распечатывает 3,5,7
для x в диапазоне ( 3 , 8 , 2 ) :
печать ( х )
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

циклы "while"

Циклы while повторяются до тех пор, пока выполняется определенное логическое условие. Например:

# Prints out 0,1,2,3,4 count = 0 while count < 5: print(count) count += 1 # This is the same as count = count + 1
1
2
3
4
5
6
# Распечатывает 0,1,2,3,4
count = 0
пока count < 5 :
печать ( количество )
count + = 1 # Это то же самое, что count = count +
1
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

операторы "break" и "continue"

break используется для выхода из цикла for или цикла while, тогда как continue используется для пропуска текущего блока и возврата к оператору «for» или «while». Несколько примеров:

# Prints out 0,1,2,3,4 count = 0 while True: print(count) count += 1 if count >= 5: break # Prints out only odd numbers - 1,3,5,7,9 for x in range(10): # Check if x is even if x % 2 == 0: continue print(x)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Распечатывает 0,1,2,3,4
count = 0
в то время как True :
печать ( количество )
count + = 1
если count > = 5 :
перерыв
# Выводит только нечетные числа - 1,3,5,7,9
для x в диапазоне ( 10 ) :
# Проверяем, четно ли x
если x % 2 == 0 :
Продолжить
печать ( х )
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Можем ли мы использовать предложение else для циклов?

В отличие от таких языков, как C, CPP ... мы можем использовать else для циклов. Когда условие цикла «for» или «while» не выполняется, выполняется часть кода в «else». Если внутри цикла for выполняется инструкция break, то часть «else» пропускается. Обратите внимание, что часть «else» выполняется даже при наличии оператора continue .

Вот несколько примеров:

# Prints out 0,1,2,3,4 and then it prints "count value reached 5" count=0 while(count<5): print(count) count +=1 else: print("count value reached %d" %(count)) # Prints out 1,2,3,4 for i in range(1, 10): if(i%5==0): break print(i) else: print("this is not printed because for loop is terminated because of break but not due to fail in condition")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Распечатывает 0,1,2,3,4, а затем печатает "count
значение достигло 5 "
count = 0
в то время как ( count < 5 ) :
печать ( количество )
count + = 1
еще :
print ( "достигнуто значение счетчика% d" % ( count ))
# Распечатывает 1,2,3,4
для i в диапазоне ( 1 , 10 ) :
если ( i % 5 == 0 ) :
перерыв
печать ( я )
еще :
print ( "это не печатается, потому что цикл for
прекращено из-за перерыва, но не из-за сбоя в
состояние " )
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Упражнение

Просмотрите и распечатайте все четные числа из списка номеров в том же порядке, в котором они были получены. Не печатайте в последовательности числа, идущие после 237.