[МУЗЫКА] Что ж, посмотрим как работать с методами списков и в конце воспользуемся методами списков, чтобы реализовать практическую задачу про печать чека и про пробивание товаров на кассе. Начнем с того, как можно добавить новый элемент в существующий список. У нас есть список покупок. Ну пусть в нем пока будет только молоко. И [ЗВУК] компьютер с нами согласен, что пока в нем есть только молоко. Давайте к этому списку добавим новый элемент, например, кефир с помощью метода append. В отличие от методов строк, которые мы с вами изучали в прошлый раз, методы списков меняют сам список. Поэтому мне не требуется писать, что список покупок равен списку покупок с добавленным к ним элементу под названием кефир. [ЗВУК] Попросим компьютер вывести обновленный список покупок через запятую. И как мы видим, кефир добавился, и он добавился сразу после молока. Метод append можно применять еще и в цикле. Напишем программу, которая делает список покупок до тех пор, пока мы не введем слово «конец». Скажем компьютеру, что мы будем вечно повторять следующий набор инструкций. Каждый раз мы будем спрашивать, [ЗВУК] какую вещь добавить в список. [ЗВУК] Если нам человек будет говорить, что конец, мы будем выходить из нашего вечного цикла. Если же это какая-то другая вещь, мы будем добавлять ее к нашему чудесному списку покупок. И в конце мы попросим компьютер наш список покупок распечатать через запятую. Давайте посмотрим, как это будет работать. Добавим молоко. Добавим кефир, добавим что-нибудь еще. Добавим сметану. После этого закончим программу. И мы видим, что компьютер аккуратно сделал список из трех элементов. Посмотрим, сколько раз мы добавляли элементы в список. Предположим, у нас есть новый список покупок, и в нем есть молоко, еще раз молоко и упомянутый выше кефир. Тогда с помощью метода count, очень похожего на метод из строк, мы можем узнать, сколько раз [ЗВУК] встречается наше молоко в упомянутом списке покупок. [ЗВУК] Молоко в списке встречается дважды. Метод очень похож на метод count из строк, если мы [ЗВУК] вспомним, вот у нас есть строка с текстом 'Hello, Dolly (1969) -- это фильм, который смотрел робот WALL-e'. И мы попросим компьютер указать, сколько раз там встречаются две буквы 'LL' подряд, то компьютер точно так же, как и в случае со списками, найдет эти две буквы LL большие, увидев, что они встречаются ровно один раз, и выведет нам единицу на экран. Очень похоже. Посмотрим теперь, как можно удалить элементы из нашего списка. Давайте удалим из списка молоко, раз уж мы все равно дважды его туда добавляли. В этом нам поможет команда remove, которая удаляет первое попавшееся ей под руку молоко. И когда мы просим компьютер напечатать наш список на экран, первого молока в нем уже нет. Чтобы проверить, что компьютер удаляет именно первый попавшийся ему элемент, совпадающий с искомым, сделаем список покупок, где мы добавили молоко, кефир, еще раз молоко. Снова удалили молоко. Снова распечатали список покупок. И теперь молоко с нулевым индексом исчезло, а молоко со вторым индексом стало иметь индекс номер 1. Как узнать, под каким индексом проживает элемент? Мы, конечно, могли бы пройти по всем индексам с помощью цикла for [ЗВУК] в поисках кефира. Если вдруг элемент с очередным индексом совпадает с тем, который нам нужен (с кефиром), мы могли бы остановиться. После чего в нашей переменной i, с помощью которой мы гуляли по индексам списка покупок, сохранился бы индекс, под которым находится кефир. [ЗВУК] [ЗВУК] [ЗВУК] Кефир находится под индексом 0, что, в принципе, совпадает с тем списком, который компьютер вывел в прошлый раз, но в языке Python есть более простой способ сделать то же самое: мы могли бы просто воспользоваться встроенным методом списков, который называется index. [ЗВУК] Однако при использовании этого метода нужно быть предельно осторожным, потому что если вдруг элемента не окажется в нашем списке покупок, компьютер сообщит нам об ошибке. Кроме этого, мы можем работать с числовыми списками. Так, например, мы можем узнать сумму чисел, которые лежат в списке, или минимальное число, или максимальное число, которые лежат в списке или кортеже. С помощью чудесных функций, а именно функций сумм, [ЗВУК] мы можем посчитать сумму списка numbers, состоящего из чисел 1, 1, 2, 3, 5. [ЗВУК] Также мы можем найти минимум, самое маленькое число, и самое большое. [ЗВУК] [ЗВУК] Посмотрим, что ответит компьютер. Да, сумма действительно равна 12. Самое маленькое число — это одна из первых единиц, и максимальное число, которое есть в нашем списке, — 5. Удивительно, но функции минимум и максимум, кроме списков и кортежей с числами, умеют работать еще и со строками. Посмотрим, какой же символ из строки из букв и цифр компьютер будет считать самым маленьким, а какой — самым большим. [ЗВУК] [ЗВУК] Просто попросим компьютер распечатать минимум и максимум нашей смешанной строки, и окажется, что самый маленький символ из использованных в строке — это единичка, а вот самый большой — это буква z. Почему компьютер так считает, мы поговорим с вами чуть позже, в теме сортировки. Наконец, мы можем преобразовать наш чудесный список в строку. Например, чтобы вывести его на экран или отправить эту строчку по электронной почте или как-то еще. Предположим, у нас есть наш многострадальный список покупок из молока и кефира, и мы хотим превратить его в строчку. В этом случае мы можем воспользоваться командой join. Команда join требует себе разделителя, который она поставит между всеми элементами. В нашем случае я прошу компьютер написать мне строчку через запятую. К строке из этой запятой я и применяю метод join, куда передаю список покупок. [ЗВУК] Компьютер взял список покупок. Склеил все строчки из указанного списка. Между строчками в точках склейки подставил запятую и пробел. У метода join есть одна маленькая особенность, он работает только со списками из строк. Если мы вдруг передадим ему список или кортеж не только из строк, но и, например, из цифр, то мы увидим ошибку. Теперь давайте посмотрим и применим все эти методы для работы с чеками и кассовым аппаратом. [МУЗЫКА]