Один датчик за смену выдаёт сотни значений. Держать каждое в своей переменной невозможно — для набора данных есть список. Сегодня научимся хранить серию измерений в списке, перебирать её и считать сводку: сумму, среднее, максимум, число превышений. В конце соберём анализатор лога датчика.

После урока сможешь: Учим хранить серию измерений в списке: индексы, append, перебор циклом, готовые sum/min/max и фильтрация по порогу. В конце собираешь анализатор лога датчика со сводкой.
Список — набор значений по порядку
Список (list) хранит несколько значений в одной переменной, по порядку. Записывают в квадратных скобках через запятую. У каждого элемента есть номер — индекс, и считают с нуля. Длину списка даёт len, отдельный элемент берут по индексу.
izmereniya = [20, 35, 28, 41]
print(len(izmereniya))
print(izmereniya[0])
print(izmereniya[-1])
4
20
41
Список — значения по порядку, у каждого свой индекс: izmereniya = [20, 35, 28, 41] значение: 20 35 28 41 индекс: 0 1 2 3 len(izmereniya) = 4 izmereniya[0] = 20 (первый) izmereniya[-1] = 41 (последний)
Индексы начинаются с 0, а не с 1. Первый элемент —
[0], последний удобно брать как[-1].
Добавляем элемент: append
Часто список наполняют по ходу: пришло измерение — добавили в конец списка методом .append(). Так список «растёт» во время работы программы.
log = []
log.append(20)
log.append(35)
print(log)
[20, 35]
Перебор списка циклом
Цикл for умеет идти прямо по элементам списка: for x in spisok — на каждом круге x становится очередным элементом. Так удобно обработать все измерения по очереди.
izmereniya = [20, 35, 28]
for x in izmereniya:
print("Измерение:", x)
Измерение: 20
Измерение: 35
Измерение: 28
for x in izmereniya: — перебор по элементам izmereniya = [20, 35, 28] круг 1: x = 20 круг 2: x = 35 круг 3: x = 28 (x по очереди становится каждым элементом списка)
Готовая сводка: sum, min, max
Для частых задач есть готовые команды: sum — сумма всех элементов, min — минимальное, max — максимальное. Среднее считают как сумма, делённая на количество: sum(spisok) / len(spisok).
izmereniya = [20, 35, 28, 41]
print(sum(izmereniya))
print(min(izmereniya))
print(max(izmereniya))
print(round(sum(izmereniya) / len(izmereniya), 2))
124
20
41
31.0
sum,min,maxиlenработают со списком целиком. Но если нужна нестандартная сводка (например, сколько значений выше порога) — это считают перебором в цикле со счётчиком.
Фильтрация: сколько превысило порог
Чтобы посчитать, сколько измерений превысили порог, перебирают список и в цикле проверяют условие, увеличивая счётчик. Это соединение списка, цикла (занятие 4) и условия (занятие 3).
izmereniya = [20, 35, 28, 41, 90]
porog = 40
prevysheniy = 0
for x in izmereniya:
if x > porog:
prevysheniy = prevysheniy + 1
print("Превышений:", prevysheniy)
Превышений: 2
Миссия: анализатор лога датчика
Скопируй программу в песочницу и запусти. В списке уже лежит лог измерений. Программа считает сводку: количество, среднее, максимум и число превышений порога. Поменяй числа в списке и порог — посмотри, как меняется отчёт.
# Анализатор лога датчика
izmereniya = [20, 35, 28, 41, 90, 12, 77]
porog = 40
prevysheniy = 0
for x in izmereniya:
if x > porog:
prevysheniy = prevysheniy + 1
print("Измерений:", len(izmereniya))
print("Среднее:", round(sum(izmereniya) / len(izmereniya), 2))
print("Максимум:", max(izmereniya))
print("Превышений порога:", prevysheniy)
Измерений: 7
Среднее: 43.29
Максимум: 90
Превышений порога: 3
Контрольный вопрос. Какой индекс у первого элемента списка?
Подсказка: В Python нумерация элементов начинается не с единицы.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число.
Исходный код для этого задания:
izmereniya = [20, 35, 28, 41] print(izmereniya[0])Подсказка: Индекс 0 — это первый элемент списка.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число.
Исходный код для этого задания:
izmereniya = [20, 35, 28, 41] print(len(izmereniya))Подсказка: len считает количество элементов в списке.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число.
Исходный код для этого задания:
izmereniya = [20, 35, 28, 41] print(sum(izmereniya))Подсказка: sum складывает все элементы списка: 20+35+28+41.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число.
Исходный код для этого задания:
izmereniya = [20, 35, 28, 41] print(max(izmereniya))Подсказка: max возвращает самый большой элемент списка.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. В список log нужно добавить в конец число 50. Напиши эту строку.
Исходный код для этого задания:
log = [20, 35] # напиши ниже строку, которая добавит в конец списка log число 50Подсказка: Добавление в конец — метод .append(). Шаблон: log.append(50).
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. В списке izmereniya лежат измерения. Напиши команду print, которая выведет их сумму.
Исходный код для этого задания:
izmereniya = [20, 35, 28, 41] # напиши ниже команду print, которая выведет сумму элементов спискаПодсказка: Сумму всех элементов даёт sum(список). Шаблон: print(sum(izmereniya)).
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. Напиши команду print, которая выведет максимальное измерение из списка izmereniya.
Исходный код для этого задания:
izmereniya = [20, 35, 28, 41] # напиши ниже команду print с максимальным элементом спискаПодсказка: Максимум даёт max(список). Шаблон: print(max(izmereniya)).
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число (среднее).
Исходный код для этого задания:
izmereniya = [10, 20, 30] print(round(sum(izmereniya) / len(izmereniya), 2))Подсказка: Среднее = сумма / количество. Сумма 60, элементов 3.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. Внутри цикла нужно проверить: если измерение x больше порога porog — увеличить счётчик prevysheniy на 1. Напиши строку с условием if (с двоеточием).
Исходный код для этого задания:
izmereniya = [20, 35, 41, 90] porog = 40 prevysheniy = 0 for x in izmereniya: # напиши ниже строку: если x больше porog (с двоеточием) prevysheniy = prevysheniy + 1 print(prevysheniy)Подсказка: Шаблон: if x > porog:. Не забудь двоеточие в конце.
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число (сколько значений больше порога).
Исходный код для этого задания:
izmereniya = [20, 35, 41, 90, 12] porog = 30 schet = 0 for x in izmereniya: if x > porog: schet = schet + 1 print(schet)Подсказка: Считаем элементы строго больше 30: пройди по списку и отметь подходящие.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Программа должна сложить измерения, но падает с ошибкой. В чём причина?
Исходный код для этого задания:
izmereniya = [20, "35", 28] print(sum(izmereniya))Подсказка: Посмотри на типы элементов списка. Один из них в кавычках — это текст, а не число.
Онлайн-проверка ответа появится позже
Задание. Проектное задание. Напиши программу целиком (около 9-10 строк) — анализатор лога. Дан список izmereniya = [20, 35, 90, 41, 95] и порог porog = 80. Перебери список и посчитай в prevysheniy, сколько значений строго больше порога. Затем выведи тремя строками: среднее (округли до 2 знаков), максимум и число превышений.
Исходный код для этого задания:
izmereniya = [20, 35, 90, 41, 95] porog = 80 # 1) prevysheniy = 0 # 2) for x in izmereniya: if x > porog: prevysheniy += 1 # 3) print среднего round(sum/len, 2) # 4) print максимума max(...) # 5) print числа превышенийПодсказка: Заведи prevysheniy = 0; в цикле for x in izmereniya проверяй if x > porog и увеличивай prevysheniy; потом print(round(sum(izmereniya)/len(izmereniya), 2)), print(max(izmereniya)), print(prevysheniy).
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Что дальше
Теперь ты умеешь хранить серию измерений в списке, перебирать её и считать сводку — сумму, среднее, максимум, число превышений. На следующем занятии займёмся текстовыми данными: научимся разбирать строку телеметрии на части.
Итог: Теперь ты умеешь хранить серию измерений в списке, перебирать её и считать сводку — сумму, среднее, максимум, число превышений. На следующем занятии займёмся текстовыми данными: научимся разбирать строку телеметрии на части.
