Python: Цикл For

Цикл while – это основной цикл в Python, но не единственный.

Существует также цикл for. Он перебирает все элементы объекта, который ему передали. Циклу for не нужен счётчик. Он сам знает, когда необходимо остановиться и закончить работу. Такая магия возможна, благодаря особому устройству объектов, по которым совершается итерация. Подробно эта тема рассматривается в наших курсах на Хекслете. Сейчас достаточно знать, что строка является таким объектом и подходит для обработки циклом for.

Посмотрим реализацию переворота строки через цикл for:

def reverse(string):
    result = ''
    for char in string:
        result = char + result
    return result


reverse('go!')  # '!og'

В переменную char кладётся очередное значение на каждом шаге итерации. Имя этой переменной может быть любым.

Можно читать так: для каждого символа строки повторить операцию конкатенации.

В определении цикла for нет ни счётчика ни условия выхода из него. Он не знает заранее, какое количество итераций будет совершено.

Задание

В одном из предыдущих уроков мы уже написали функцию filter_string(). Напомним, она принимает на вход строку и символ и возвращает новую строку, в которой удалён переданный символ во всех его позициях. На этот раз реализуйте эту функцию с помощью цикла for. Дополнительное условие: регистр исключаемого символа не имеет значения.

Пример вызова:

text = 'If I look forward I am win'
filter_string(text, 'i')  # 'f  look forward  am wn'
filter_string(text, 'O')  # 'If I lk frward I am win'

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе