Код БарсикОсновы Python
Основы Python›C10 · Теория

Теория · C10

Списки и индексы

Разберись в теме, запусти пример и переходи к самостоятельным задачам.

РАЗБИРАЕМ ПО ШАГАМ

От идеи к работающему коду

Список хранит несколько значений в заданном порядке. На его основе сделаем меню: покажем варианты, получим номер пользователя и безопасно найдём выбранный элемент.

Сразу к запуску примера ↓
Барсик показывает упорядоченную полку: у каждого элемента своё место.
Барсик показывает упорядоченную полку: у каждого элемента своё место.
  1. 1Список значений
  2. 2Номер и индекс
  3. 3Проверка перед выбором

1. Создаём список

Элементы списка записываются в квадратных скобках через запятую. В gifts ниже три строки. len(gifts) возвращает количество элементов, а не номер последнего.

Список может хранить разные типы, но набор однородных данных проще обрабатывать. Отрицательные индексы отсчитывают элементы с конца. Пустой список [] — допустимое значение с длиной 0.

Python
gifts = ["Робот", "Книга", "Конструктор"]print(gifts)print(len(gifts))

2. Индекс начинается с нуля

gifts[0] — первый элемент, gifts[1] — второй. Индекс последнего равен len(gifts) - 1. Индекс -1 тоже обращается к последнему элементу непустого списка.

Обращение по индексу не ищет значение: оно берёт элемент с конкретной позиции. Индекс за пределами списка вызовет IndexError. У пустого списка нет ни первого, ни последнего элемента.

Python
gifts = ["Робот", "Книга", "Конструктор"]print(gifts[0])print(gifts[-1])

3. Пользовательский номер и индекс

В меню люди обычно считают с 1, а Python — с 0. Поэтому перед обращением вычитаем единицу из номера. Сначала проверяем 1 <= number <= len(gifts).

Проверка нужна и для 0: выражение gifts[number - 1] при нуле даст последний элемент, хотя пользователь ввёл неверный номер. Это логическая ошибка, даже если Python не сообщает об исключении.

Python
gifts = ["Робот", "Книга", "Конструктор"]number = int(input("Номер подарка: "))if 1 <= number <= len(gifts):    print(gifts[number - 1])else:    print("Такого номера нет")

4. Объединение и перебор

Оператор + соединяет два списка в новый список. Исходные списки при этом не меняются. Порядок сохраняется: сначала все элементы первого, затем второго.

Для меню можно перебрать индексы через range(len(...)) и показать index + 1. Позже используем enumerate, который выдаёт номер и элемент вместе.

Python
names = ["Саша", "Маша"] + ["Барсик"]for index in range(len(names)):    print(index + 1, names[index])

Где легко ошибиться

  • Считать, что первый индекс равен 1.
  • Разрешить 0 или отрицательный номер в меню.
  • Обратиться к последнему элементу пустого списка.
Проверь понимание: Какой индекс у третьего элемента списка?

2. Индекс равен пользовательскому номеру минус один.

Первый предмет списка

Запусти пример. Затем измени код или входные данные и проверь, как меняется вывод.

Пример входных данных

Ввод не нужен

Ожидаемый вывод

ключ
3
main.pyPython · можно менять код

Подготавливаем редактор…

Загрузка Python…

Каждый ответ — с новой строки.

Твой вывод

Здесь появится результат запуска.

Дальше — самостоятельные задачи

  1. Объединить два списка имён
  2. Преобразовать номер меню в индекс
  3. Обработать 0, отрицательный номер и номер больше длины