Цикл for в Python

Назад в начало

Цикл в любом языке программирования - это многократное выполнение одного и то же действия.

В Python все немного не так. Здесь цикл for - это цикл перебора последовательности. Он состоит из двух компонент: переменной (переменных) цикла и последовательности. Приведу пример:

for item in 'one', 'two', 'three':
    print(item)

В приведенном выше примере переменная цикла item по очереди принимает каждое значение последовательности, которая записана после служебного слова in. На первом повторении переменная item равна строке 'one', на втором - строке 'two', на третьем - строке 'three'.

# Вывод:
>> one
>> two
>> three

Еще несколько примеров:

for element in '1', 'hello', 2, 1990, True, False:
    print(element)

# Вывод:
>> 1
>> hello
>> 2
>> 1990
>> True
>> False

for letter in 'Hello world':
    print(letter)

>> H
>> e
>> l
>> l
>> o
>>
>> w
>> o
>> r
>> l
>> d

Функция range()

Функция range() возвращает диапазон (последовательность) целых чисел. range() может принимать 1, 2 или 3 аргумента.

Примеры функции range() с одним аргументом:

# range() с одним аргументом

print('range(3) -> 0, 1, 2')
for x in range(3): # range(3) -> 0, 1, 2
    print(x)

print('range(5) -> 0, 1, 2, 3, 4')
for x in range(5): # range(5) -> 0, 1, 2, 3, 4
    print(x)

# range(1) -> 0
# range(6) -> 0, 1, 2, 3, 4, 5
# range(10) -> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

# Вывод:
>> range(3) -> 0, 1, 2
>> 0
>> 1
>> 2
>> range(5) -> 0, 1, 2, 3, 4
>> 0
>> 1
>> 2
>> 3
>> 4

Примеры функции range() с двумя аргументами:

print('range(3, 5) -> 3, 4')
for x in range(3, 5): # range(3, 5) -> 3, 4
    print(x)

print('range(1, 5) -> 1, 2, 3, 4')
for x in range(1, 5): # range(1, 5) -> 1, 2, 3, 4
    print(x)

# range(2, 7) -> 2, 3, 4, 5, 6
# range(100, 105) -> 100, 101, 102, 103, 104
# range(50, 53) -> 50, 51, 52

# Вывод:
>> range(3, 5) -> 3, 4
>> 3
>> 4
>> range(1, 5) -> 1, 2, 3, 4
>> 1
>> 2
>> 3
>> 4

Примеры функции range() с тремя аргументами:

print('range(0, 10, 2) -> 0, 2, 4, 6, 8')
for x in range(0, 10, 2): # range(0, 10, 2) -> 0, 2, 4, 6, 8
    print(x)

print('range(1, 10, 2) -> 1, 3, 5, 7, 9')
for x in range(1, 10, 2): # range(1, 10, 2) -> 1, 3, 5, 7, 9
    print(x)

print('range(10, 20, 3) -> 10, 13, 16, 19')
for x in range(10, 20, 3): # range(10, 20, 3) -> 10, 13, 16, 19
    print(x)

# range(2, 7, 5) -> 2
# range(1, 8, 4) -> 1, 5
# range(4, 20, 5) -> 4, 9, 14, 19

>> range(0, 10, 2) -> 0, 2, 4, 6, 8
>> 0
>> 2
>> 4
>> 6
>> 8
>> range(1, 10, 2) -> 1, 3, 5, 7, 9
>> 1
>> 3
>> 5
>> 7
>> 9
>> range(10, 20, 3) -> 10, 13, 16, 19
>> 10
>> 13
>> 16
>> 19

Решение задач

1. Вывод чисел от 0 до N

Пользователь вводит число N. Выведите все числа от 0 до N включительно.

# Ввод:
>> 4
# Вывод:
>> 0
>> 1
>> 2
>> 3
>> 4

2. Вывод чисел от K до N

Пользователь вводит числа K и N. Выведите все числа от K до N включительно.

# Ввод:
>> 2
>> 7
# Вывод:
>> 2
>> 3
>> 4
>> 5
>> 6
>> 7

3. Сумма от K до N

Пользователь вводит числа K и N. Выведите сумму чисел от K до N включительно.

# Ввод:
>> 1
>> 5
# Вывод:
>> 15

4. Сумма четных от K до N

Пользователь вводит числа K и N. Выведите сумму только четных чисел от K до N включительно.

# Ввод:
>> 1
>> 5
# Вывод:
>> 6 # 2 + 4

5. Сумма дробей (часть первая)

Пользователь вводит число N. Найдите сумму чисел: 1 + 1.1 + 1.2 + 1.3 + ... + (1 + N / 10).

# Ввод:
>> 5
# Вывод:
>> 7.5

6. Сумма дробей (часть вторая)

Пользователь вводит число N. Найдите сумму чисел: 1 + 1/2 + 1/3 + ... + 1/N

# Ввод:
>> 5
# Вывод:
>> 2.283

В этот раз без финального босса...