Урок 04. Одномерные массивы на Python

Создавать список Python, находить элементы по индексам, заполнять список через append и выводить его элементы циклом.

Понадобятся тетрадь и ручка; для программ — компьютер с Python и IDLE. Если компьютера нет, код можно сначала разобрать на бумаге.

Все уроки · Перейти к заданиям

Материалы к уроку

1. Создание списка

Одно значение можно хранить в обычной переменной:

temperature = 18

Несколько связанных значений удобно хранить в списке:

temperatures = [18, 20, 17, 21]

Здесь temperatures — имя всего списка, а числа в квадратных скобках — его элементы. Порядок элементов сохраняется. Список может изменяться: в него можно добавлять новые элементы.

len(temperatures) вернёт количество элементов — 4.

2. Индексы элементов

У каждого элемента есть индекс. В Python индексы начинаются с нуля:

Обычный номер1234
Индекс Python0123
Значение18201721
temperatures = [18, 20, 17, 21]
print(temperatures[0])
print(temperatures[2])

Программа выведет 18, затем 17. Индекс последнего элемента равен , то есть .

Частая ошибка

В списке из четырёх элементов нет элемента temperatures[4]. Допустимые индексы: 0, 1, 2 и 3. Обращение по несуществующему индексу вызовет IndexError.

3. Заполнение и вывод

Когда значения вводит пользователь, сначала создают пустой список, а затем добавляют в него элементы:

numbers = []
 
for i in range(3):
    number = int(input("Введите число: "))
    numbers.append(number)
 
print(numbers)

append(number) добавляет новое значение в конец списка. Цикл выполняется три раза, поэтому после ввода в списке будут три числа.

Вывести элементы по одному можно без индексов:

for number in numbers:
    print(number)

Если нужны и индекс, и значение:

for i in range(len(numbers)):
    print("Индекс", i, "значение", numbers[i])

Разобранный пример

Задача: ввести три целых числа, сохранить их в списке, а затем вывести номер места и значение каждого элемента.

Алгоритм словами

  1. Создать пустой список.
  2. Три раза ввести целое число и добавить его в список.
  3. Перебрать все допустимые индексы.
  4. Для каждого индекса вывести обычный номер места и элемент.

Программа

Создай файл lesson04.py.

numbers = []
 
for i in range(3):
    number = int(input("Введите число: "))
    numbers.append(number)
 
for i in range(len(numbers)):
    print("Место", i + 1, "значение", numbers[i])

Трассировка для чисел 7, 4 и 9

ШагinumbernumbersДействие
до цикла——[]создан пустой список
1-й ввод07[7]добавлено 7
2-й ввод14[7, 4]добавлено 4
3-й ввод29[7, 4, 9]добавлено 9

Второй цикл берёт индексы 0, 1, 2 и печатает:

Место 1 значение 7
Место 2 значение 4
Место 3 значение 9

Наглядная схема

flowchart LR
    A["numbers = []"] --> B["append(7)"]
    B --> C["[7]"]
    C --> D["append(4)"]
    D --> E["[7, 4]"]
    E --> F["append(9)"]
    F --> G["[7, 4, 9]"]
    G --> H["Индексы: 0, 1, 2"]
    classDef list fill:#d0ebff,stroke:#1971c2,color:#212529;
    class A,C,E,G,H list;

Тренировка по шагам

Работай сверху вниз. Сначала запиши собственный ответ, затем нажми на свёрнутый блок «Правильный ответ» непосредственно под заданием. Исправление пиши ниже своей первой попытки, не стирая её.

Шаг 1. Прочитай список

Дан scores = [5, 4, 3, 5]. Чему равны len(scores), scores[0], scores[2] и scores[len(scores) - 1]?

Ответ ученика

Шаг 2. Проследи append

Запиши состояние numbers после каждой команды.

numbers = []
numbers.append(6)
numbers.append(2)
numbers.append(8)

Ответ ученика

Шаг 3. Исправь индекс

Почему colors = ["красный", "синий", "зелёный"]; print(colors[3]) вызывает ошибку? Как вывести зелёный?

Ответ ученика

Шаг 4. Предскажи вывод

Что выведет программа?

values = [10, 20, 30]
for value in values:
    print(value)

Ответ ученика

Шаг 5. Заполни список

Напиши цикл, который вводит три целых числа и добавляет их в список numbers.

Ответ ученика

Шаг 6. Индекс и значение

Для numbers = [7, 4, 9] напиши цикл, который выводит индекс и значение каждого элемента.

Ответ ученика

Шаг 7. Итог урока

Создай пустой список, добавь в него числа 3 и 8, выведи первый элемент и затем все элементы циклом.

Ответ ученика

Вопросы ученика

Предыдущий урок · Следующий урок