lunes, enero 30, 2012

Generador de número de tarjetas de SUBE. Basado en el algoritmo en PHP publicado aca, hice mi versión Python. La versión no tiene nada en especial, salvo quizas que se parece bastante a la original dentro de las diferencias lógicas y esperadas por las distintas sintaxis entre Python y PHP. Estaría interesante ver alguna versión mas optimizada (en velocidad de ejecución o en tamaño del código, por ejemplo).

for x in range(606126702512472,606126702512572):
    digitos = map(int,list(str(x)))
    for i, digito in enumerate(digitos):
        if i%2==0:
            digitos[i] = (digito*2)-9 if (digito)*2 > 9 else (digito)*2
        suma = sum(digitos)
        if suma%10==0:
            verificador = 0
        else:
            verificador = 10 - (suma%10)
    print str(x)+str(verificador)


Si a esta altura no saben que es SUBE, probablemente no sean de Argentina, asi que les recomiendo este post mio viejo.

1 Comentarios:

A la/s 2:39 p. m., Blogger Nerd Progre dijo...

En el quiosko (o kiosko, o kiosco) de la esquina de mi casa pusieron un cartel : "Vendemos tarjetas SUBE".

Oia? como es eso? Tendra que ver con esto? son truchas?

FC

 

Publicar un comentario

Suscribirse a Comentarios de la entrada [Atom]

<< Página Principal