Skip to content

Latest commit

 

History

History
83 lines (58 loc) · 3.66 KB

File metadata and controls

83 lines (58 loc) · 3.66 KB

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

Цикл "for"

Циклы 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"

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

# Выведет 0,1,2,3,4

count = 0
while count < 5:
    print(count)
    count += 1  # Это то же самое, что count = count + 1

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

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)

Можем ли мы использовать "else" в циклах?

В отличие от таких языков, как 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 в последовательности.