Цикл for в Python

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

Простой перебор

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

for i in 'one', 'two', 'three':
    print(i)
# one
# two
# three

Приведу еще несколько примеров:

for i in '1', 'hello', 2, 1990, True, False:
    print(i)
for j in 'orange', 'red', 'purple':
    print(j)
for k in 'first', 'last':
    print(k)

Функция range()

Теперь пришло время познакомиться с встроенной в Python функцией range(). "range" переводится как "диапазон". Она может принимать один, два или три аргумента. Если задан только один, то генерируются числа от 0 до указанного числа, не включая его. Если заданы два, то числа генерируются от первого до второго, не включая его. Если заданы три, то третье число – это шаг. Рассмотрим случай с одним аргументом:

for number in range(5):
    print(number)
for number in 0, 1, 2, 3, 4:
    print(number)

Напечатаются числа от 0 до 4. Это связано с тем, что функция range с одним аргументом генерирует диапазон от 0 до n-1, где n - это переданный аргумент.

Передадим в функцию два аргумента: 5 и 10. В этом случае range cгенерирует последовательность чисел от 5 до 9.

for el in range(5,10,2):
    print(el)

Если передать в range три аргумента: 5, 10, 2, то мы получим последовательность от 5 до 10 с шагом в 2

for el in range(5,10):
    print(el)

Перебор строк и функция len()

С помошью цикла for мы можем перебрать любую последовательность, например, строку:

for letter in 'hello':
    print(letter)
for l in 'python':
    print(l)

Любая последовательность имеет длину, это означает, что мы можем ее посчитать

Примеры решения задач

1. Посчитать сумму чисел от 0 до number

number = int(input())
summa = 0
for i in range(number+1):
    # summa = summa + i
    summa += i
print(summa)

2. Посчитать сумму четных чисел от 0 до number

number = int(input())
summa = 0
for i in range(number+1):
    if i % 2 == 0:
        # summa = summa + i
        summa += i
print(summa)

3. Посчитать произведение чисел от 1 до number

number = int(input())
multi = 1
for i in range(1, number+1):
    multi *= i
print(multi)

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

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

2. Вывести числа от 0 до n, где n - это случайное число или число, введенное с клавиатуры

3. Вывести нечетные числа в диапазона от 0 до n (диапазон - это последовательность чисел от 0 до n)

4. Вывести четные числа из диапазона от 0 до n.

5. Вывести числа, делящиеся на три без остатка, в диапазоне от 0 до n.

6. Вывести числа, делящиеся на три или на семь без остатка, в диапазоне от 0 до n.

7. Найти сумму всех чисел от 1 до n.

7. Найти сумму четных чисел от 1 до n.

8. Даны два целых числа a и b a < b. Найти сумму всех целых чисел от a до b включительно.

9. Найти сумму чисел от 1 до n, делящихся на 3 .

10. Дано целое число n. Найти сумму 1 + 1/2 + 1/3 + ... + 1/n

11. Дано целое число n. Найти сумму 1 + 2 + 4 + 8 + 16 + ... + 2**n
где 2**n - это 2*2*2*...*2 раз. Таким образом, 2**4 = 2*2*2*2. Операция ** называется операцией возведения в степень.

12. Дано целое число n. Найти сумму: 1.1 + 1.2 + 1.3 + ... + (1 + 0.1*n)

13. Дано целое число n. Найти значение выражения 1.1 − 1.2 + 1.3 − ... (N слагаемых, знаки чередуются).

14. Дано целое число n. Найти квадрат данного числа, используя для его вычисления следующую формулу: n**2 = 1 + 3 + 5 + ... + (2*N − 1) После добавления к сумме каждого слагаемого выводить текущее значение суммы

15. Дано вещественное число A и целое число N (> 0). Найти A в степени N: A**N = A * A * ... * A (числа A перемножаются N раз). Операцию ** не использовать.

16. По данному натуральному n ≤ 30 выведите лесенку из n ступенек, i-я ступенька состоит из чисел от 1 до i без пробелов. Посмотрите статью про ввод и вывод данных.

17. Дано целое число n. Найти сумму 1**1 + 2**2 + ... + n**n.

18. Даны целые положительные числа A и B (A < B). Вывести все целые числа от A до B включительно; при этом каждое число должно выводиться столько раз, каково его значение (например, число 3 выводится 3 раза).