Цель урока: научиться составлять числовые последовательности и находить сумму элементов числовой последовательности средствами изучаемого языка программирования.
Пример 1. Вывести на экран числовую последовательность 1, 3, 5, 7, … . Количество чисел ввести с клавиатуры. Формула: an=2n-1, минимальное значение числа n = 1
k = int(input('k = '))
for n in range(1, k+1):
a = 2 * n - 1
print(a, end = ' ')
Результат работы программы:

Команда print(a, end=» «) выводит числа в одну строку через пробел. Диапазон range(1, k + 1) даёт значения n от 1 до k включительно. Частая ошибка — записать range(1, k): тогда будет выведено только k – 1 число.
Пример 2. Последовательность Фибоначчи и приём «сдвиг»
Одной из наиболее известных является последовательность Фибоначчи: 0, 1, 1, 2, 3, 5, 8, 13… Каждый её элемент, начиная с третьего, равен сумме двух предыдущих: an = an–1 + an–2, a1 = 0, a2 = 1.

Для вывода чисел используют три переменные: a — значение, которое нужно вывести; b и c — два предыдущих значения. После вывода значения a нужно «сдвинуть» значения переменных: c = b; b = a, а затем получить новый элемент: a = b + c.
«Сдвиг» переменных при выводе чисел Фибоначчи
| n | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| Числа Фибоначчи | 0 | 1 | 1 | 2 | 3 | 5 | 8 |
| Текущий шаг | c | b | a | ||||
| Следующий шаг | c | b | a |
На каждом шаге «окошко» из трёх переменных перемещается по последовательности на одну позицию вправо: то, что было b, становится c; то, что было a, становится b.
x = int(input("x = "))
c = 0; b = 1
# вывод первых двух элементов
print(c, b, end=" ")
a = c + b
while a < x:
# вывод текущего значения
print(a, end=" ")
# сдвиг
c = b
b = a
# новый элемент
a = b + c
Результат работы программы:

Пример 3. В лаборатории выводят полезные бактерии. Экспериментально было установлено, что количество бактерий (в млн) зависит от номера дня, в который проводится эксперимент: 
from math import *
m = int(input("m = "))
# начальное значение суммы
s = 0
for n in range(1, m + 1):
x = n ** 3
# вычисление элемента
# последовательности
a = x / (sqrt(x) - n + 1)
# изменение значения суммы
s += a
print("всего бактерий", s, "млн")
Результат работы программы:

Сумму хранит переменная s, её начальное значение — ноль. Количество дней заранее известно, поэтому используем цикл for: номер дня n изменяется от 1 до m. В цикле вычисляем количество бактерий за текущий день a и добавляем его к сумме.
Пример 4. Катя и Петя решили организовать благотворительную лотерею. Для этого они случайным образом генерируют номер билета. Номера билетов принадлежат промежутку [1..100]. Выигрышным билетом будет тот, номер которого кратен 5. Определить, сколько будет выигрышных билетов среди n сгенерированных Катей и Петей.
from random import *
n = int(input('n = '))
k = 0
for i in range(n):
a = randint(1, 100)
print(a, end = ' ')
if a % 5 == 0: # проверка выигрыша
k += 1
print()
print('выиграло', k, 'билета(ов)')
Результат работы программы:


Задания по теме урока
Задание 1. Вывести на экран первые k чисел последовательности, заданной формулой an = 4n − 3.
Подсказка: цикл for с range(1, k + 1) — по образцу примера 1
Задание 2. Последовательность задана рекуррентно: a1 = 1, a2 = 2, а каждый следующий элемент равен произведению двух предыдущих: an = an–1 * an–2. Вывести на экран все элементы этой последовательности, меньшие x.
Подсказка: приём «сдвиг» из примера 2: цикл while и три переменные c, b, a.
Задание 3. Сгенерировать k случайных целых чисел от 1 до 50. Подсчитать количество чисел, кратных 3.
Подсказка: обратить внимание на пример 4.

Домашнее задание
§ 7.1 и 7.2 учебного пособия, ответить на вопросы
