Python - ayuda if-else dentro de ciclo for no se ejecuta completamente

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

ayuda if-else dentro de ciclo for no se ejecuta completamente

Publicado por Marjorie (4 intervenciones) el 20/07/2020 23:09:16
Hola, espero todos se encuentren bien, estoy aprendiendo python, estoy practicando con Python 3.7 y se me ha presentado un problema que no logro resolver, dentro de una función tengo dos ciclos For, en del último For tengo incluido un if-else, el cual sólo ejecuta el if, y en caso de o cumplirse la condición no ejecuta el ese. Les agradecería si me pudieran ayudar por favor..Gracias!!

les dejo una imagen con el código
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: 471
Bronce
Ha aumentado 1 puesto en Python (en relación al último mes)
Gráfica de Python

ayuda if-else dentro de ciclo for no se ejecuta completamente

Publicado por dario (128 intervenciones) el 21/07/2020 04:00:54
Coloca tu codigo.
Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha disminuido su posición en 8 puestos en Python (en relación al último mes)
Gráfica de Python

ayuda if-else dentro de ciclo for no se ejecuta completamente

Publicado por Marjorie (4 intervenciones) el 21/07/2020 04:32:08
Disculpa habia subido una foto con mi código pero no se adjunto, soy nueva acá es la primera vez que ingreso al foro, te agradecería si me pudieras ayudar por favor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def cantidad():
    c=0
    global foto2
    archivo = ["c1.txt", "c2.txt", "c3.txt"]
    patron=(cajam.get())
    for linea in fileinput.input(archivo):
        tex= linea
        x=re.findall(patron, tex)
        for i in x:
             if (x!=None):
                 foto2=PhotoImage(file="d3.png")
                 f2=Label(v4,image=foto2,relief=RAISED)
                 f2.place(x=750, y=150)
                 messagebox.showwarning("Alerta", "El imputado posee otras causas")
             else:
                  messagebox.showwarning("Alerta", "NO HAY COINCIDENCIAS")
             c=c+1
    cajam2.insert(0,c)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 412
Bronce
Ha aumentado su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

ayuda if-else dentro de ciclo for no se ejecuta completamente

Publicado por Daniel (95 intervenciones) el 21/07/2020 10:51:19
Hola,

Puede se que en la línea 10 en lugar de comparar con x tengas que comparar con i, el elemento sobre el que se itera. En caso contario es mejor poner el if antes del for.

Saludos,
Daniel Rodríguez
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 12
Ha disminuido su posición en 8 puestos en Python (en relación al último mes)
Gráfica de Python

ayuda if-else dentro de ciclo for no se ejecuta completamente

Publicado por Marjorie (4 intervenciones) el 21/07/2020 17:33:49
Gracias, ya había hecho la prueba de comparar con i y pasa lo mismo hace el ciclo y al hacer la comparación si coincide ejecuta el if pero si no, no entra al else....en cuanto a poner el if antes del for no puedo por que necesito que haga la busqueda primero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jaime
Val: 348
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

ayuda if-else dentro de ciclo for no se ejecuta completamente

Publicado por Jaime (88 intervenciones) el 21/07/2020 12:45:44
Lo que pasa es que la opción else es cuando x=None; pero si x=None, el ciclo nunca ejecutaría. Por eso nunca entra en la opción else
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
sin imagen de perfil
Val: 12
Ha disminuido su posición en 8 puestos en Python (en relación al último mes)
Gráfica de Python

ayuda if-else dentro de ciclo for no se ejecuta completamente

Publicado por Marjorie (4 intervenciones) el 21/07/2020 17:53:29
Gracias por responder, tambien he probado que en vez de preguntar en el if por distinto de None compare si es igual dando exactamente lo que deseo compare, y al encontrarlo efectivamente ejecuta el if pero en caso contrario tampoco entra al else y solo me muestra que hubo 0 coincidencias.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def cantidad():
        c=0
        global foto2
        archivo = ["c1.txt", "c2.txt", "c3.txt"]
        patron=(cajam.get())
        for linea in fileinput.input(archivo):
            tex= linea
            x=re.findall(patron, tex)
            for i in x:
                if (i=="jorge"):
                    foto2=PhotoImage(file="d3.png")
                    f2=Label(v4,image=foto2,relief=RAISED)
                    f2.place(x=750, y=150)
                    messagebox.showwarning("Alerta", "El Imputado posee otras causas")
                    c=c+1
                else:
                     messagebox.showwarning("Alerta", "NO HAY COINCIDENCIAS")
 
        cajam2.insert(0,c)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jaime
Val: 348
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

ayuda if-else dentro de ciclo for no se ejecuta completamente

Publicado por Jaime (88 intervenciones) el 21/07/2020 23:07:01
Te enfrentaste al problema que tenemos todos los programadores!

Te toca depurar de forma controlada. Si usas un IDE, tienes que poner puntos de interrupción, examinar la variable "x", la variable "i" y la variable "linea" para ver como se comporta e intentar entender cual es el error lógico.
O la otra forma, es llenarse de "print" verificando el valor de las variables en mención, para analizar y solucionar el error lógico.
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