[Python-es] Programa para pasar de decimal a binario con GUI Qt4

Ramon Villalonga Gómez ramonvillalongagomez en gmail.com
Lun Ago 30 23:25:14 CEST 2010


Me suena a chino todas estas funciones :S

Ya le echaré un ojo con paciencia, y miraré de resolver el pendiente ;)

Un saludo :)

2010/8/30 Arnau Sanchez <pyarnau en gmail.com>

> On Mon, 30 Aug 2010 19:39:11 +0200 Ramon Villalonga Gómez wrote:
>
> > No sabía que se puede hacer a través de la funcion int() y no tengo
> > ni idea de como hacer el código en una línea.
>
> Una versión simple teniendo en cuenta que las potencias de 2 son
> desplazamientos (shift) hacia la izquierda:
>
> def strbin2int(s):
>    return sum(int(x)*(1 << pos) for (pos, x) in enumerate(reversed(s)))
>
> Pero no hace falta calcular el sumando cuando el dígito es 0, así que
> llevamos
> el int() al iterable y queda algo más eficiente:
>
> def strbin2int(s):
>    return sum(1 << pos for (pos, x) in enumerate(map(int, reversed(s))) if
> x)
>
> Y con la misma idea, generalizando para base <= 10:
>
> def str2int(s, base=10):
>    return sum(x*(base**pos) for (pos, x) in
>               enumerate(map(int, reversed(s))) if x)
>
> El int2str() de 3 líneas (¿o menos?) queda como ejercicio para el lector
> ;-)
>
> arnau
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20100830/95ed271b/attachment.html>


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