Andaba haciendo un code para generar los 16 digits de una cc valida e hice este code,pero no me da ninguna salida haber si le ven el fallo.
El algoritmo consiste en multiplicar por 2 las cifras que ocupan por una posicion impar, si es mayor que nueve el resultado restarle dicho numero con los nuevos resultados que obtenemos los sumamos con los numeros de la sposiciones pares y si es multiplo de 10 el resultado es correcto.
import random
comprobacion=0
while comprobacion%10!=0:
#El número de cifras representa la posicion de la cifra en el numero de la cc
uno=random.randint(1,9)
dos=random.randint(1,9)
tres=random.randint(1,9)
cuatro=random.randint(1,9)
cinco=random.randint(1,9)
seis=random.randint(1,9)
siete=random.randint(1,9)
ocho=random.randint(1,9)
nueve=random.randint(1,9)
diez=random.randint(1,9)
once=random.randint(1,9)
doce=random.randint(1,9)
trece=random.randint(1,9)
catorce=random.randint(1,9)
quince=random.randint(1,9)
dieciseis=random.randint(1,9)
unp=uno*2
if unp>9:
unp-=9
dop=tres*2
if dop>9:
dop-=9
trp=cinco*2
if trp>9:
trp-=9
cap=siete*2
if cap>9:
cap-=9
cip=nueve*2
if cip>9:
cip-=9
sep=once*2
if sep>9:
sep-=9
seep=trece*2
if seep>9:
seep-=9
oip=quince*2
if oip>9:
oip-=9
comprobacion=unp+dop+trp+cap+cip+sep+seep+diez+doce+catorce+dieciseis
if comprobacion%10==0:
n=[unp,dop,trp,cap,cip,sep,seep,diez,doce,catorce,dieciseis]
we=''.join(n)
print we
print "Hecho"