Calcolo dei check digits (CIN Europeo) su IBAN in Python

#Il codice BBAN (Basic Bank Account Number) è un codice internazionale che contiene le coordinate bancarie nazionali.
    #In Italia esso è lungo 23 caratteri ed è costituito dal semplice accostamento di CIN, ABI, CAB e conto corrente. 

    #1 A destra del codice BBAN si aggiunge la stringa IT00.
    bban = cin + abi + cab + cc + "IT00"
    print "BBAN:%s" % (bban)

    #2 Nella stringa così ottenuta si sostituiscono i caratteri alfabetici con un numero di due cifre ottenuto dalla posizione della lettera nell'alfabeto a cui va sommato 9. 
    #Così, ad esempio, A diventa 10, B diventa 11, C diventa 12 e così via fino a Z, che diventa 35.
    sban = ''
    for adigit in bban:
        p = 0
        if adigit in alfa:
            for achar in alfa:
                p = p +1
                if adigit==achar:
                    cc = p + 9
        else:
            cc = adigit
        sban = sban + str (cc)
    
    #3 In questo modo si ottiene un numero di almeno 30 cifre e si considera il resto della divisione fra tale numero e 97. Il resto di tale divisione è un numero compreso fra 0 e 96.
    ci = int(sban) % 97
    resto = 98 - ci

    #4 Infine il resto ottenuto al punto 3 va sottratto da 98 e si ottiene così il codice desiderato, che è un numero compreso fra 2 e 98.
    #se il numero è di una sola cifra, occorre anteporre uno zero (così si hanno sempre due caratteri, cioè 02, 03 fino a 09), per fare questo utilizziamo la funzione zfill. 
    print "CHECK DIGITS:%s" % (str(resto).zfill(2))

You must be logged in to post a comment.