Бесплатно, нужен вход через Google. Готовый тест не тратит часовой лимит.
О чём лекция
Лекция посвящена спискам Python, которые рассматриваются как массивы и контейнеры для хранения элементов. Разбираются последовательный перебор списка через цикл for, доступ к элементам по индексам от нуля и изменение элементов по индексному обращению. На примере операции += объясняется ссылочная модель Python: имена связываются с объектами, числа неизменяемы, а списки изменяемы. Отдельно показано, как контролировать фактическую заполненность заранее созданного массива и использовать его для чтения последовательности до терминального нуля, в том числе для вывода данных в обратном порядке.
Затем рассматриваются копирование списков и отличие новой копии от дополнительной ссылки на тот же объект. На примере линейного поиска вводятся проектирование интерфейса функции, согласование возвращаемых значений и простое тестирование. Далее разбираются разворот массива с обменом элементов попарно, циклические сдвиги влево и вправо, а также решето Эратосфена. Последний алгоритм использует список логических значений: составные числа помечаются как ложные, а простые определяются по оставшимся истинным значениям. В конце показан тернарный оператор для выбора текста по логическому условию.
Ключевые идеи
Алгоритмы важнее синтаксиса языка, поэтому операции со списками рассматриваются через функции с понятными входами и результатами.
Массив представляет собой контейнер с одним именем и множеством элементов, доступ к которым осуществляется по отдельности.
В Python имена связаны с объектами: числа неизменяемы, а изменение числовой переменной создает новый объект.
Для изменения элементов списка нужно обращаться к ним по индексам, начинающимся с нуля.
При работе с заранее созданным массивом отдельная переменная позволяет отслеживать реальное количество хранимых элементов.
Присваивание одного списка другому создает второе имя того же объекта, поэтому для независимой копии требуется поэлементное копирование или конструктор list.
Линейный поиск оформляется как функция с заранее определенным протоколом, возвращающая индекс первого найденного элемента или -1.
На списках строятся циклические сдвиги и решето Эратосфена, где логические значения отмечают простые и составные числа.
Примеры вопросов
Дан массив чисел [1, 2, 3, 4, 5]. Какое действие выполняет последовательный обход массива по порядку слева направо?
AОбращается к каждому элементу массива один за другим, начиная с первого
BПереставляет элементы так, чтобы они шли от большего к меньшему
CМеняет местами первый и последний элементы массива
DУдаляет из массива все элементы, кроме последнего
Показать ответ
Верный ответ: A. Последовательный обход означает поочерёдную обработку всех элементов в их исходном порядке, от начала массива к концу.
В алгоритме переменная цикла `x` сначала равна 1. На каждой итерации программа сначала выводит значение `x`, а затем увеличивает `x` на 1. Какие значения будут выведены на первых двух итерациях?
A2, затем 3
B1, затем 2
C1, затем 1
D0, затем 1
Показать ответ
Верный ответ: B. После первой печати значение 1 увеличивается на единицу, поэтому при следующей печати переменная равна 2.