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'
Verificar el dígito de control (DC) de una cuenta corriente en Python

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

Deja una respuesta

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. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s