[Python-es] Problema raro en if (): else: en python WTF???

gerardo Juarez gerardojuarez en buyteknet.info
Jue Ago 23 17:39:49 CEST 2012


Hola,

Coincido con José, no sabemos qué contiene A. Sin embargo, y con los 
datos que tenemos, yo diría que una forma en la que el programa puede 
tener ese comportamiento es si nunca entra al if A[x][y] == 1.  Los 
valores de A son los correctos? Luego parece que el problema
es en una sección de código y realmente el problema viene desde antes. 
Especialmente me ha pasado cuando convierto un algoritmo probado de un 
lenguaje a otro. Los paréntesis en la expresión no me parece que influyan.

Gerardo

Horacio wrote:
> Buenas, este problema me desafía todo mi sentido común... lo que busco
> en una matriz A de NRxNR es hallar las codiagonales no nulas y su
> longitud..
>
> AVISO: Este algoritmo funciona, lo he probado en PERL!!
>
> Pero el siguiente código no se por qué LM y S se mantienen en cero???
> luego del ELSE: cuando s+=1 si se incrementa en 1!! como lo compruebo
> en el primer "print"  WTF!!!
>
> d=[]
> d=[0]*NR
> LM=0
> s=0
> for c in range(5,NR):
>    s=0
>    for x in range(NR):
>        y=x+c
>        if (y<NR):
>            if (A[x][y]==1):
>                s+=1
>                print s # aca da <> 0
>            else:
>                print s,LM # aca me da s=LM=0 ???? el equivalente en
> perl me da <> 0??? WTF
>                if (s>LM):
>                    LM=s
>                d[s]+=1
>                s=0
> print "Diagonal maxima %d" % LM
>
> Alguien me puede decir que cuernos le pasa al if??
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>   



Más información sobre la lista de distribución Python-es