Дана некоторая строка. Найдите позицию третьего нуля в строке

Есть вопрос по задаче. Нужно найти позицию третьего нуля в строке. Сам ничего не придумал, в интернете тоже ничего не нашёл. Вот пример кода для поиска первого нуля в строке

def find_zero(s):
    for index, char in enumerate(s):
        if char == '0':
            return index
    return "Нулей нет"

print(find_zero("abc0def"))
print(find_zero("abcdef"))

Подскажите на его основе как написать код для позиции третьего нуля.


Ответы (3 шт):

Автор решения: andr124
def find_zero(s):
    c = 0
    for index, char in enumerate(s):
        if char == '0':
            c += 1
            if c == 3:
                return index
    return "Нулей нет"


print(find_zero("abc0def"))
print(find_zero("abcdef"))
print(find_zero("ab00cd0ef"))

Нулей нет
Нулей нет
6

→ Ссылка
Автор решения: GravyTalk

Достаточно разделить строку на символы и искать символы соответствующие нулю, а затем считать количество встретившихся нулей.

def position_3_zero(str):

    count = 0
    for index, symbol in enumerate(str.strip()):
        if symbol == '0':
            count += 1
            if count == 3:
                pos = index
    return pos


if __name__ == "__main__":

    str_list = ["abcj0ajf0ajb0",
                "jddi0wejfn00",
                "000aknfakfn",
                "aknfa000ajfnajfn"]

    for str in str_list:
        pos = position_3_zero(str)
        print(pos)

12 11 2 7

→ Ссылка
Автор решения: Andrei Sh

Решение в одну строку:

vvar = input("Введите строку: ")
print("Позиция третьего нуля в строке: %s" % [index for index, value in
    enumerate(vvar) if value == "0"][2:3] if len([index for index, value in 
    enumerate(vvar) if value == "0"]) >= 3 else "Нет трёх нулей!")
→ Ссылка