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

Juan Ignacio euribates en gmail.com
Vie Ago 24 11:51:06 CEST 2012


¿Has comprobado que no has mezclado tabuladores y espacios?

2012/8/23 Eduard Diaz <eventgrafic en gmail.com>

> Hola Horacio
>
> Con tu código he hecho una prueba que la puedes ver en [1]
>
> He creado una matriz a pelo y probado tu codigo.
>
> Parece que funciona correctamente, asi que supongo que tendras que ampliar
> un poco la descripción del código, reformular la consulta o deducir que el
> problema pueda estar en la matriz.
>
> [1] http://pastebin.com/CW8rb0By
>
> Saludos
>
>
> El 23 de agosto de 2012 17:39, gerardo Juarez <
> gerardojuarez en buyteknet.info> escribió:
>
> 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<http://mail.python.org/mailman/listinfo/python-es>
>>> FAQ: http://python-es-faq.wikidot.**com/<http://python-es-faq.wikidot.com/>
>>>
>>>
>>>
>>
>> ______________________________**_________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/**mailman/listinfo/python-es<http://mail.python.org/mailman/listinfo/python-es>
>> FAQ: http://python-es-faq.wikidot.**com/<http://python-es-faq.wikidot.com/>
>>
>
>
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
Juan Ignacio Rodríguez de León
Móvil: 605 890514
E-Mail: euribates en gmail.com
http://www.metriz.com/
http://descon2.com/
http://www.elornitorrincoenmascarado.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120824/9822eac0/attachment.html>


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