[МУЗЫКА] Добрый день. Сегодня мы посмотрим с вами, как можно редактировать список с помощью цикла for. Например, у нас есть список покупок из белого хлеба, молока, сметаны, сыра. И самое простое, как мы можем редактировать этот список, мы можем написать программу, которая спросит у человека номер элемента, который нужно заменить, [ЗВУК] спросит, на что заменить, и заменит. [ЗВУК] Номера, которые вводят люди, на единицу больше, чем индексы, потому что люди привыкли считать с единицы, компьютеры привыкли считать с нуля. Чтобы превратить номер элемента в его индекс, нам будет нужно вычесть единицу. И теперь мы можем заменить элемент с интересующим пользователя номером на ноль. После чего, мы можем вывести наш новый список покупок на экран. [ЗВУК] [ЗВУК] Посмотрим, как это работает. У нас был список из белого хлеба, молока, сметаны, сыра и еще раз молока. Мы говорим, что мы хотим заменить элемент первым номером, то есть белый хлеб хотим заменить на шаурму, и мы видим, что это прекрасно сработало. Теперь мы не покупаем белый хлеб, теперь мы покупаем шаурму. Но мы же не всегда помним, под каким номером находится наш элемент. Зачастую мы знаем только его название, а нумерацией занимается компьютер. Давайте напишем программу, которая будет просматривать наш список, спрашивать у нас, какой элемент нужно заменить, слово, и менять элемент, который совпадает с введенным на ноль. Для этого скопируем наш стартовый список покупок в новую ячейку. Для начала попросим компьютер вывести на экран список с указанием номеров с помощью уже известной нам конструкции for i in range. [ЗВУК] [ЗВУК] [ЗВУК] [ЗВУК] [ЗВУК] [ЗВУК] Теперь мы можем спросить у человека, что же нужно заменить. [ЗВУК] Спросим старое значение и спросим новое значение. [ЗВУК] Пройдем по нашему списку. Во время прохода по списку будем сравнивать каждый элемент с тем, который мы хотим заменить, и если нашли подходящий элемент — заменим его значение, и после этого распечатаем наш новый список. [ЗВУК] [ЗВУК] [ЗВУК] [ЗВУК] Если тот элемент, который мы сейчас просматриваем, совпадает с тем элементом, который мы хотим поменять, поменяем его. [ЗВУК] Ну и в конце еще раз просмотрим все наши элементы. Давайте попросим компьютер заменить сметану на что-нибудь еще, например, на кефир. Компьютер спрашивает: что мы меняем? Мы меняем сметану. Меняем на кефир. И как видно, элемент со вторым индексом был сметаной, стал кефир. Но вот в чем вопрос: элемент сметана в изначальном списке встречался ровно один раз. Но что если бы заменяемый объект был в нашем списке несколько раз? Запустим программу еще раз и попробуем заменить на кефир уже молоко. Так, я запустил ту же самую программу. Теперь я прошу заменить молоко, которое присутствует дважды, на кефир. И можно заметить, что заменились оба молока как под индексом 1, так и под индексом 4. Чтобы этого избежать, мы можем воспользоваться уже знакомым нам оператором break, который чудесно работает с циклом for. В наше условие, где мы меняли старый элемент на новый, добавим слово break. [ЗВУК] Теперь, после первого же замененного элемента, компьютер из нашего цикла for выйдет и перейдет на 11-ю строчку программы и начнет распечатывать список на экран. Попробуем теперь заменить молоко на кефир. Здорово. В этот раз заменился только первый элемент нашего списка, потому что после замены благодаря действию команды break мы из цикла вышли. У команды break есть еще очень важное использование: это запуск цикла для одного элемента, просто чтобы мы, люди, проверили, что пишем программу правильно. Например, если у нас есть список чисел [ЗВУК] и мы хотим вывести все четные числа, то мы можем попросить [ЗВУК] перебрать все числа, проверить, что наше число делится на два без остатка. Мы просим компьютер вывести число на экран и на всякий случай останавливаем цикл, потому что в промышленности циклы могут работать несколько тысяч, десятков или сотен тысяч раз, и имеет смысл проверить, что мы нигде не ошиблись в нашем коде. [ЗВУК] И оказывается, что мы ошиблись. Мы поставили неправильно значок «равно». Сейчас машина проверяет, что число как раз не делится на два без остатка, что остаток от деления на два не равен нулю. Исправим ошибку. Запустим еще раз. Видим, что теперь наш цикл выпадает после первого найденного четного числа, значит, он работает корректно, и конструкцию break мы можем удалить. Давайте посмотрим на все четные числа. Теперь мы знаем, что наша программа работает корректно и можно ее запускать для всех чисел. Чудесно. У нас было ровно два четных числа в списке, и теперь мы их нашли, а с помощью конструкции break мы еще и смогли проверить, что наша программа действительно работает так, как нам нужно, и даже исправить какие-то ошибки. Спасибо за внимание. [МУЗЫКА]