Одномерные массивы (списки): объявление, заполнение, обработка — тренажёр для 8 класса
8 класс • Информатика
Тренажёр по теме «Одномерные массивы (списки): объявление, заполнение, обработка» для 8 класса на создавать списки в Python различными способами: литерал, ввод с клавиатуры, генератор, обращаться к элементам списка по индексу, использовать отрицательные индексы, обрабатывать списки в цикле: вычислять сумму, минимум, максимум, среднее. Задания соответствуют разделу «ФРП по информатике, 8 класс: Массивы (списки). Объявление и заполнение. Доступ по индексу. Обработка массивов в цикле. Поиск и сортировка» федеральной рабочей программы. 15 заданий с автоматической проверкой ответов, подсказками и разбором решения. Заниматься можно бесплатно, без регистрации.
Задания в теме
Загружаем задание…
Справка
Проверено методистом
Михаил ИгнатьевУчитель высшей квалификационной категорииИсточник
[1] Примерная основная образовательная программа основного общего образования, раздел «ФРП по информатике, 8 класс: Массивы (списки). Объявление и заполнение. Доступ по индексу. Обработка массивов в цикле. Поиск и сортировка», ФГОС ООО.
Что нужно уметь по этой теме
- создавать списки в Python различными способами: литерал, ввод с клавиатуры, генератор
- обращаться к элементам списка по индексу, использовать отрицательные индексы
- обрабатывать списки в цикле: вычислять сумму, минимум, максимум, среднее
- выполнять поиск элемента в списке и подсчёт элементов по условию
- применять встроенные методы и функции: len(), append(), sort(), min(), max()
Соответствие программе
Кодификатор ФИПИ: 2.5.1, 2.5.2, 2.5.3
ФРП: ФРП по информатике, 8 класс: Массивы (списки). Объявление и заполнение. Доступ по индексу. Обработка массивов в цикле. Поиск и сортировка
Часы по ФРП на раздел: 9
Прогресс по этой теме: 0 верно, 0 неверно, 0 пропущено из 15 заданий.
Как разобраться в теме: полный разбор
Раздел 1 — Определение
Одномерный массив (в Python — список, list) — это упорядоченная изменяемая последовательность элементов, каждый из которых доступен по целочисленному номеру-индексу, предназначенная для хранения набора данных под одним именем.
Массив решает задачу, которую нельзя решить отдельными переменными: обработать сто чисел, не создавая сто имён. Все элементы объединены одним именем, а различаются номерами, поэтому обход набора выполняется циклом — одна строка кода работает и с пятью, и с пятью тысячами значений.
Слово «одномерный» указывает на структуру адресации: положение элемента задаётся ровно одним числом. Термин «упорядоченная» означает не отсортированность, а фиксированный порядок: элемент, добавленный третьим, останется третьим, пока список не изменят.
В программе 8 класса список — базовая структура данных, на которой строятся поиск, подсчёт, сортировка и статистические вычисления (сумма, минимум, максимум, среднее).
Раздел 2 — Ключевые правила
Список подчиняется правилу нумерации с нуля: первый элемент имеет индекс 0, последний — индекс len(a) - 1.
- Объявление литералом: элементы перечисляются в квадратных скобках через запятую —
a = [7, 3, 15, 8]. Пустой список записывается какa = []. - Доступ по индексу:
a[i]читает и записывает элемент.a[0]— первый,a[2] = 99— замена третьего элемента. - Отрицательные индексы отсчитываются с конца:
a[-1]— последний,a[-2]— предпоследний. Тождество:a[-k]равноa[len(a) - k]. - Длина списка возвращается функцией
len(a)и всегда на единицу больше максимального допустимого индекса. - Добавление элемента в конец выполняет метод
append(x):a.append(5)увеличивает длину на 1. - Обход циклом ведётся двумя способами: по значениям —
for x in a:, по номерам —for i in range(len(a)):. Изменять элементы можно только через индекс. - Генератор списка (списковое включение) строит список одним выражением:
a = [i * i for i in range(5)]даёт[0, 1, 4, 9, 16].
Раздел 3 — Разбор примеров
Пример 1. Литерал и индексы.
``python
a = [7, 3, 15, 8]
print(a[0], a[3], a[-1], len(a))
Список содержит четыре элемента с индексами 0–3. Обращение a[3] и a[-1] даёт одно значение — 15... точнее, 8, так как последним записан именно он. Вывод: 7 8 8 4. Правило: len(a)` равно количеству элементов, а не индексу последнего.
Пример 2. Заполнение с клавиатуры.
``python
a = [int(x) for x in input().split()]
Метод split() разрезает введённую строку по пробелам и возвращает список строк; генератор превращает каждую строку в целое число. При вводе 4 9 2 получается [4, 9, 2]. Вывод: без int() элементы останутся строками и 4 + 9 даст '49'`.
Пример 3. Сумма, среднее, максимум в цикле.
``python
s = 0
m = a[0]
for x in a:
s += x
if x > m:
m = x
print(s, s / len(a), m)
Накопитель s стартует с нуля, кандидат в максимум m` — с первого элемента (не с нуля: при отрицательных числах ноль победит ошибочно). Среднее арифметическое — отношение суммы к длине. Вывод: начальное значение накопителя выбирается по смыслу операции.
Пример 4. Поиск и подсчёт по условию.
``python
k = 0
poz = -1
for i in range(len(a)):
if a[i] % 2 == 0:
k += 1
if a[i] == 15 and poz == -1:
poz = i
print(k, poz)
Счётчик k увеличивается на каждом чётном элементе; переменная poz хранит индекс первого вхождения числа 15, а значение -1` служит признаком «не найдено». Вывод: линейный поиск требует обхода по индексам, если нужен номер, а не сам элемент.
Пример 5. Сортировка и встроенные функции.
``python
a.sort() # [3, 7, 8, 15] — меняет сам список
b = sorted(a, reverse=True) # новый список по убыванию
print(min(a), max(a), sum(a))
Метод sort() перестраивает исходный список и возвращает None, функция sorted() создаёт копию. Вывод: запись a = a.sort() уничтожает данные, оставляя None`.
Раздел 4 — Таблица средств работы со списком
| Средство | Что делает | Результат для a = [7, 3, 15] |
|---|---|---|
len(a) | возвращает количество элементов | 3 |
a[0] | читает первый элемент | 7 |
a[-1] | читает последний элемент | 15 |
a.append(5) | добавляет элемент в конец | [7, 3, 15, 5] |
sum(a) | суммирует числовые элементы | 25 |
min(a) / max(a) | находит наименьший / наибольший | 3 / 15 |
a.sort() | сортирует сам список по возрастанию | [3, 7, 15], возвращает None |
sorted(a) | строит отсортированную копию | новый [3, 7, 15], a не изменён |
a.index(15) | ищет индекс первого вхождения | 2 |
a.count(3) | считает вхождения значения | 1 |
15 in a | проверяет наличие значения | True |
Раздел 5 — Типичные ошибки
Выход за границу списка. Обращение a[len(a)] вызывает IndexError, потому что нумерация заканчивается на len(a) - 1. Неправильно: for i in range(1, len(a) + 1). Правильно: for i in range(len(a)).
Присваивание результата sort(). Метод изменяет список на месте и возвращает None. Неправильно: a = a.sort(). Правильно: a.sort() либо b = sorted(a).
Нулевой старт поиска максимума. Инициализация m = 0 даёт неверный ответ для списка из отрицательных чисел: [-5, -2] вернёт 0. Правильно: m = a[0].
Ввод без преобразования типа. Строка a = input().split() создаёт список строк, и sum(a) завершится ошибкой типов. Правильно: a = [int(x) for x in input().split()].
Изменение элементов при обходе по значениям. В цикле for x in a: x = x * 2 удваивается копия, а список не меняется. Правильно: for i in range(len(a)): a[i] *= 2.
Раздел 6 — Пошаговый алгоритм
- Определите источник данных: литерал, ввод с клавиатуры или генератор.
- Создайте список выбранным способом и приведите элементы к нужному типу.
- Сформулируйте задачу: сумма, поиск, подсчёт, сортировка — от этого зависит набор переменных.
- Заведите вспомогательные переменные и задайте им корректные начальные значения (
s = 0,m = a[0],poz = -1). - Выберите вид цикла: по значениям — для чтения, по индексам — для изменения элементов или поиска номера.
- Запишите тело цикла: одно условие — одно действие.
- Выведите результат, а для среднего разделите сумму на
len(a). - Проверьте программу на трёх наборах: обычном, из одного элемента и с отрицательными числами.
Раздел 7 — Как запомнить
- «Первый — нулевой, последний — минус первый»:
a[0]иa[-1]— две границы списка. - Формула границ: индексы принадлежат отрезку от
0доlen(a) - 1; отрицательные — от-1до-len(a). - Пара «глагол — существительное»:
sort()(глагол-действие) меняет сам список,sorted()(причастие-результат) даёт новый. - Три накопителя обработки: сумма стартует с
0, минимум и максимум — сa[0], счётчик — с0. - «
append— приложить к концу»: длина растёт на единицу, индекс нового элемента равен прежнемуlen(a).
Частые вопросы
С какого индекса начинается нумерация в Python-списке?
С 0: первый элемент — a[0], последний — a[-1] или a[len(a)-1].
Как добавить элемент в конец списка?
Метод a.append(значение).
Как найти сумму элементов списка a?
sum(a) или циклом: s = 0; for x in a: s += x.
Что значит отрицательный индекс, например a[-2]?
Отсчёт с конца: a[-1] — последний, a[-2] — предпоследний элемент.