Чтобы решить задачу на список в Python 3, записывайте его состояние после каждого действия и отдельно отмечайте, что передано в `print`. Ниже — четыре разбора и восемь заданий с ответами.
Каждый фрагмент самостоятельный: переменные из предыдущего в нём не используются. В выводе сохраняйте квадратные скобки, запятые и порядок строк.
Как читать индекс и результат метода
Первый элемент списка имеет индекс 0. Срез включает элемент с начальным индексом, но не включает элемент с конечным. Метод может изменить список, а функция `sorted` возвращает новый отсортированный список. Справку по этим операциям можно найти в документации Python.
Важно различать состояние списка и результат вызова: `print(a)` выводит список, а `print(x)` — значение, записанное в `x`. В заданиях сначала определите, что изменилось, и только потом записывайте вывод.
Четыре разбора изменения и чтения списка
1. Добавление в конец
Предскажите точный вывод этого самостоятельного фрагмента Python 3.
«`python a = [4, 1, 7] a.append(3) print(a)
«`
Метод `append` добавляет число 3 после последнего элемента. В `print` передан весь изменённый список, а не результат вызова метода.
«`text [4, 1, 7, 3]
«`
2. Замена по индексу
Предскажите точный вывод этого самостоятельного фрагмента Python 3.
«`python a = [8, 2, 5] a[1] = 6 print(a)
«`
Индекс 1 указывает на второй элемент. Вместо 2 записывается 6; первый и третий элементы остаются на местах.
«`text [8, 6, 5]
«`
3. Срез по двум границам
Предскажите точный вывод этого самостоятельного фрагмента Python 3.
«`python a = [2, 4, 6, 8] print(a[1:3])
«`
В срез попадают элементы с индексами 1 и 2. Элемент с индексом 3 уже за правой границей.
«`text [4, 6]
«`
4. Сортировка без изменения исходного списка
Предскажите точный вывод этого самостоятельного фрагмента Python 3.
«`python a = [9, 3, 7] print(sorted(a)) print(a)
«`
Первый `print` выводит новый отсортированный список. Второй выводит `a` в исходном порядке: вызов `sorted(a)` его не изменил.
«`text [3, 7, 9] [9, 3, 7]
«`
Восемь задач на операции со списком
Для каждого фрагмента предскажите точный вывод. Ответы расположены после всех заданий.
5. Сумма элементов
«`python a = [3, 6, 2, 5] print(sum(a))
«`
6. Количество совпадений и длина
«`python a = [5, 5, 2, 5] print(a.count(5)) print(len(a))
«`
7. Вставка по индексу
«`python a = [7, 9] a.insert(1, 0) print(a)
«`
8. Удалённый элемент и остаток
«`python a = [6, 8, 1] x = a.pop() print(x) print(a)
«`
9. Удаление совпадающего значения
«`python a = [2, 7, 2, 9] a.remove(2) print(a)
«`
10. Добавление в копию
«`python a = [1, 4] b = a.copy() b.append(8) print(a) print(b)
«`
11. Последний элемент
«`python a = [8, 3, 6] print(a[-1])
«`
12. Срез с шагом
«`python a = [10, 20, 30, 40, 50] print(a[::2])
«`
Ответы к задачам 5–12
5. Сумма
«`text 16
«`
`sum` складывает все четыре числа: 3 + 6 + 2 + 5 = 16.
6. Совпадения и длина
«`text 3 4
«`
Пятёрка встречается три раза, поэтому `count(5)` даёт 3. Всего в списке четыре элемента, поэтому `len(a)` даёт 4.
7. Вставка
«`text [7, 0, 9]
«`
Ноль вставляется перед прежним элементом с индексом 1. Число 9 сдвигается вправо; оно не заменяется.
8. Результат `pop`
«`text 1 [6, 8]
«`
`pop()` без индекса удаляет последний элемент и возвращает его. В `x` записана 1, а в списке остаются 6 и 8.
9. Первое совпадение
«`text [7, 2, 9]
«`
`remove(2)` удаляет первое найденное значение 2. Вторая двойка остаётся в списке.
10. Плоская копия
«`text [1, 4] [1, 4, 8]
«`
`b` — отдельная копия списка, поэтому добавление 8 меняет `b`, но не `a`. Здесь список плоский: вложенных изменяемых объектов нет.
11. Отрицательный индекс
«`text 6
«`
Индекс −1 обращается к последнему элементу непустого списка. Здесь это число 6.
12. Каждый второй элемент
«`text [10, 30, 50]
«`
Шаг 2 выбирает элементы с индексами 0, 2 и 4. Получается новый список из чисел 10, 30 и 50.
Если практикум нужен ребёнку как часть более широкого знакомства с кодом, пригодится статья «Как научить ребёнка программированию бесплатно».