Цикл for

 

Цикл for, также называемый циклом с параметром, в языке Питон богат возможностями. В цикле for указывается переменная и множество значений, по которому будет пробегать переменная. Множество значений может быть задано списком, кортежем, строкой или диапазоном.

Вот простейший пример использования цикла, где в качестве множества значений используется кортеж:

i = 1
for color in 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet':
    print('#', i, ' color of rainbow is ', color, sep = '')
    i += 1
В этом примере переменная color последовательно принимает значения 'red', 'orange' и т.д

*щелкните по изображению для просмотра в полном размере

В теле цикла выводится сообщение, которое содержит название цвета, то есть значение переменной color, а также номер итерации цикла  число, которое сначала равно 1, а потом увеличивается на один (инструкцией i += 1 с каждым проходом цикла. Инструкция i += 1 эквивалентна конструкции i = i + 1 (это просто сокращенная запись).

В списке значений могут быть выражения различных типов, например:

for i in 1, 2, 3, 'one', 'two', 'three':
    print(i)
 

*щелкните по изображению для просмотра в полном размере

Как правило, циклы for используются либо для повторения какой-либо последовательности действий заданное число раз, либо для изменения значения переменной в цикле от некоторого начального значения до некоторого конечного.

Для повторения цикла некоторое заданное число раз n можно использовать цикл for вместе с функциейrange:

for i in range(4):  # равносильно инструкции for i in 0, 1, 2, 3:
    # здесь можно выполнять циклические действия
    print(i)
    print(i ** 2)
# цикл закончился, поскольку закончился блок с отступом
print('Конец цикла')

В качестве n может использоваться числовая константа, переменная или произвольное арифметическое выражение (например, 2 ** 10). Если значение n равно нулю или отрицательное, то тело цикла не выполнится ни разу.

Функция range может также принимать не один, а два параметра. Вызов range(a, b) означает, что индексная переменная будет принимать значения от a до b - 1, то есть первый параметр функции range, вызываемой с двумя параметрами, задает начальное значение индексной переменной, а второй параметр — первое значение, которое индексная переменная принимать не будет. Если же a≥b, то цикл не будет выполнен ни разу. Например, для того, чтобы просуммировать значения чисел от 1 до n можно воспользоваться следующей программой:

sum = 0
n = 5
for i in range(1, n + 1):
    sum += i
print(sum)

Программа выводит сумму чисел от одного до 5

В этом примере переменная i принимает значения 1, 2, ..., n, и значение переменной sum последовательно увеличивается на указанные значения.

*щелкните по изображению для просмотра в полном размере

Наконец, чтобы организовать цикл, в котором индексная переменная будет уменьшаться, необходимо использовать функцию range с тремя параметрами. Первый параметр задает начальное значение индексной переменной, второй параметр — значение, до которого будет изменяться индексная переменная (не включая его!), а третий параметр — величину изменения индексной переменной. Например, сделать цикл по всем нечетным числам от 1 до 99 можно при помощи функции range(1, 100, 2), а сделать цикл по всем числам от 100 до 1 можно при помощи range(100, 0, -1).

Более формально, цикл for i in range(a, b, d) при d > 0 задает значения индексной переменной i = a, i = a + d, i = a + 2 * d и так для всех значений, для которых i < b. Если же d < 0, то переменная цикла принимает все значения i > b.

sum = 0
n = 5
for i in range(1, n + 1,2):
    sum += i
print(sum)
Программа находит сумму нечетных чисел от 1 до 5

*щелкните по изображению для просмотра в полном размере

Задачи

  1. Найти сумму чисел от 1 до 100.
  2. Найти сумму первых n нечетных чисел.
  3. Найти сумму первых n чисел.
  4. Вывести на экран квадраты нечетных чисел от 5 до 25.
  5. Найти произведение чисел от 1 до 10.
  6. Написать программу вычисления факториала числа.Факториалом числа n называется произведение 1 × 2 × ... × n. Обозначение: n!
  7. Даны два целых числа A и В. Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае.
  8. Дано несколько чисел. Вычислите их сумму. Сначала вводите количество чисел N, затем вводится ровно N целых чисел.
  9. **По данному натуральном n вычислите сумму 13+23+33+...+n3
  10. **По данному натуральному n ≤ 9 выведите лесенку из n ступенек, i-я ступенька состоит из чисел от 1 до i без пробелов.