Verificar el dígito de control (DC) de una cuenta corriente en Python


El Código Cuenta Cliente (CCC) es el código que identifica en España las cuentas corrientes de los clientes de bancos. El CCC tiene 20 dígitos en formato AAAA-BBBB-CC-DDDDDDDDDD.

  • AAAA son cuatro dígitos que identifican la entidad bancaria.
  • BBBB son cuatro dígitos que identifican la oficina.
  • CC se denomina dígito de control (DC).
  • DDDDDDDDDD son 10 dígitos de la cuenta del cliente en el banco.

Según la wikipedia:
Los dígitos situados en las posiciones novena y décima se generan a partir de los demás dígitos del CCC, permitiendo comprobar la validez del mismo y reducir la posibilidad de errores de manipulación. El primero de ellos valida conjuntamente los códigos de entidad y de oficina; el segundo, valida el número de cuenta.

Cada uno de los dígitos del DC se calcula utilizando el mismo algoritmo, para lo que se complementa con dos ceros a la izquierda la entidad y oficina.

Una función para calcular el DC en python podría ser:

def calcula_dc(secuencia):
    """Calcula el dígito de control de una CCC.
    Recibe una lista con 10 numeros enteros y devuelve el DC
    correspondiente"""

    pesos = [1, 2, 4, 8, 5, 10, 9, 7, 3, 6]
    aux = []
    for i in range(10):
        aux.append(secuencia[i]*pesos[i])
    resto = 11 - sum(aux)%11
    if resto == 10:
        return 1
    elif resto == 11:
        return 0
    else:
        return resto

Y un pequeño programa para validar una cuenta corriente sería:

ccc = raw_input("Introduce el CCC: ").split('-')
entidadyoficina = [0, 0]
for i in range(2):
    for j in range(4):
        entidadyoficina.append(int(ccc[i][j]))
cuenta = []
for i in range(10):
    cuenta.append(int(ccc[3][i]))
dc = str(calcula_dc(entidadyoficina))+str(calcula_dc(cuenta))
if dc == ccc[2]:
    print 'CCC verificado'
else:
    print 'Hay un error en el CCC'
About these ads

,

  1. #1 por Arturo Borrero el 26-04-11 - 5:45 pm

    Que bien queda lo de SyntaxHighlighter aquí, no? :P

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 308 seguidores

%d personas les gusta esto: