Python - Problema con el break en bucles

 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 18 puestos en Python (en relación al último mes)
Gráfica de Python

Problema con el break en bucles

Publicado por franklin (1 intervención) el 23/10/2019 03:32:09
Mi código es el siguiente:

1
2
3
4
5
6
for x in [10, 11, 30]:
    for y in [2, 4, 3]:
        if (x+y) <= 100 and (x * y) %2 == 0:
            print(f"{x},{y}")
        else:
            break
está diseñado para hacer combinaciones entre las dos listas siempre que se cumplan las condiciones, sin embargo debe parar si es que alguna combinación no cumple las condiciones, en este caso deberia parar en la quinta combinación y para eso pude un break pero no funciona y sigue hasta que acaba todas las combinaciones.
Agradecería mucho alguna solución
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Problema con el break en bucles

Publicado por tincopasan (1082 intervenciones) el 23/10/2019 05:03:37
hola:
el problema es que el break termina el ciclo del 2 for y vuelve al primero que sigue ejecutandose. Una forma simple de mostrarte eso es:

1
2
3
4
5
6
7
8
9
10
#-*- coding: utf -8 -*-
z = 0       #una variable como testigo
for x in [10, 11, 30]: #l primer for
    if z == 0:                # como vale 0 continua cuando sea distinto termina  
        for y in [2, 4, 3]: #segundo for
            if (x+y) <= 100 and (x * y) %2 == 0:
                print(f"{x},{y}")
            else:
                z = 1          #asigno al testigo otro valor
                break        # y termino el 2 for , para así volver al primero

Todo esto sería innecesario si simplemente terminas el script con exit, pero si hay más código me parece lo más simple.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar