Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Как использовать break outside loop в питоне?

  1. Как использовать break outside loop в питоне?

    Привет, ребята! У меня тут такой вопрос: как правильно использовать break outside loop в питоне? Пытаюсь выйти из внутреннего цикла и сразу из внешнего, но постоянно получаю ошибку "SyntaxError: 'break' outside loop". Может, кто подскажет, как это сделать грамотно? Может какой-то лайфхак есть? Спасибо!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Чтобы выйти сразу из двух циклов, можно использовать флаг или поместить цикл во функцию и воспользоваться return. Вот пример с флагом:

    Программный код:
    flag False
    for i in range(5):
        for 
    j in range(5):
            if 
    == 3:
                
    flag True
                
    break
        if 
    flag:
            break 
    Либо, вот пример с функцией:

    Программный код:
    def nested_loops():
        for 
    i in range(5):
            for 
    j in range(5):
                if 
    == 3:
                    return
    nested_loops() 

  4. Цитата Сообщение от Грета
    Привет! Чтобы выйти сразу из двух циклов, можно использовать флаг или поместить цикл во функцию и воспользоваться return. Вот пример с флагом:

    Программный код:
    flag False
    for i in range(5):
        for 
    j in range(5):
            if 
    == 3:
                
    flag True
                
    break
        if 
    flag:
            break 
    Либо, вот пример с функцией:

    Программный код:
    def nested_loops():
        for 
    i in range(5):
            for 
    j in range(5):
                if 
    == 3:
                    return
    nested_loops() 
    Ого, прикольнно! Никогда не думал испрользовать флаг, спасибо за идею!

  5. Я обычно с функцией тоже делаю, попроще и понятней. Так же можно немного покастылить с эксепшенами:

    Программный код:
    class BreakException(Exception):
        
    pass

    try:
        for 
    i in range(5):
            for 
    j in range(5):
                if 
    == 3:
                    
    raise BreakException
    except BreakException
    :
        
    pass 

  6. Цитата Сообщение от BlueWolf
    Я обычно с функцией тоже делаю, попроще и понятней. Так же можно немного покастылить с эксепшенами:

    Программный код:
    class BreakException(Exception):
        
    pass

    try:
        for 
    i in range(5):
            for 
    j in range(5):
                if 
    == 3:
                    
    raise BreakException
    except BreakException
    :
        
    pass 
    Кто бы мог подумать, эксепшены для таких вещей. Круто, спасибо!

  7. Юзаю методы эксепшенов. Все забывают про try...except. Неочевдно, но работает!)

    Программный код:
    class OutOfLoop(Exception):
        
    pass

    try:
        for 
    i in range(5):
            for 
    j in range(5):
                if 
    == 3:
                    
    raise OutOfLoop
    except OutOfLoop
    :
        print(
    "Вышел из двух циклов"

  8. Цитата Сообщение от Эдуард
    Юзаю методы эксепшенов. Все забывают про try...except. Неочевдно, но работает!)

    Программный код:
    class OutOfLoop(Exception):
        
    pass

    try:
        for 
    i in range(5):
            for 
    j in range(5):
                if 
    == 3:
                    
    raise OutOfLoop
    except OutOfLoop
    :
        print(
    "Вышел из двух циклов"
    Ага, execptions вообще рулат для таких задач. Спасибо за наглядный пример!

  9. Да ладно пытки, проще флагами. Вот код на коленке:

    Программный код:
    break_flag False
    for i in range(5):
        for 
    j in range(5):
            if 
    == 3:
                
    break_flag True
                
    break
        if 
    break_flag:
            break 

  10. Цитата Сообщение от ФлюоритовыйДракон
    Да ладно пытки, проще флагами. Вот код на коленке:

    Программный код:
    break_flag False
    for i in range(5):
        for 
    j in range(5):
            if 
    == 3:
                
    break_flag True
                
    break
        if 
    break_flag:
            break 
    Уф, с флагами мне как-то проще разобратся, благодарю!

Страница 1 из 2 12 ПоследняяПоследняя