Главная › Лекции › Тимофей Хирьянов (МФТИ) — Алгоритмы на Python 3

Массивы, ссылочная модель и базовые алгоритмы на Python

Лекция объясняет работу со списками в Python, индексацию, ссылки, копирование и базовые алгоритмы обработки массивов.

Тимофей Хирьянов⏱ 79 минОткрыть на YouTube ↗
Пройти весь тест — 9 вопросов →

Бесплатно, нужен вход через Google. Готовый тест не тратит часовой лимит.

О чём лекция

Лекция посвящена спискам Python, которые рассматриваются как массивы и контейнеры для хранения элементов. Разбираются последовательный перебор списка через цикл for, доступ к элементам по индексам от нуля и изменение элементов по индексному обращению. На примере операции += объясняется ссылочная модель Python: имена связываются с объектами, числа неизменяемы, а списки изменяемы. Отдельно показано, как контролировать фактическую заполненность заранее созданного массива и использовать его для чтения последовательности до терминального нуля, в том числе для вывода данных в обратном порядке.

Затем рассматриваются копирование списков и отличие новой копии от дополнительной ссылки на тот же объект. На примере линейного поиска вводятся проектирование интерфейса функции, согласование возвращаемых значений и простое тестирование. Далее разбираются разворот массива с обменом элементов попарно, циклические сдвиги влево и вправо, а также решето Эратосфена. Последний алгоритм использует список логических значений: составные числа помечаются как ложные, а простые определяются по оставшимся истинным значениям. В конце показан тернарный оператор для выбора текста по логическому условию.

Ключевые идеи

Примеры вопросов

Дан массив чисел [1, 2, 3, 4, 5]. Какое действие выполняет последовательный обход массива по порядку слева направо?

  1. AОбращается к каждому элементу массива один за другим, начиная с первого
  2. BПереставляет элементы так, чтобы они шли от большего к меньшему
  3. CМеняет местами первый и последний элементы массива
  4. DУдаляет из массива все элементы, кроме последнего
Показать ответ

Верный ответ: A. Последовательный обход означает поочерёдную обработку всех элементов в их исходном порядке, от начала массива к концу.

В алгоритме переменная цикла `x` сначала равна 1. На каждой итерации программа сначала выводит значение `x`, а затем увеличивает `x` на 1. Какие значения будут выведены на первых двух итерациях?

  1. A2, затем 3
  2. B1, затем 2
  3. C1, затем 1
  4. D0, затем 1
Показать ответ

Верный ответ: B. После первой печати значение 1 увеличивается на единицу, поэтому при следующей печати переменная равна 2.

Пройти весь тест — 9 вопросов →

Свой тест по любой лекции

Вставьте ссылку на видео — LearnReplay сделает тест на понимание.

Создать тест →