Проверка IBAN Python - PullRequest
       31

Проверка IBAN Python

0 голосов
/ 02 ноября 2018

Для unitversity мы должны запрограммировать код, который проверяет IBAN Германии, Suisse и Франции. Немецкий IBAN DE08700901001234567890 содержит две буквы «DE», номер теста 08, номер банка 70090100 и номер счета 1234567890. Для букв необходимо добавить +9 к его номеру (A = 10, B = 11, ... Z = 35).

Для проверки IBAN первые четыре числа должны быть сдвинуты до конца, а буквы DE должны быть заменены на 1314. Проверочный номер 700901001234567890131408 Модуль 0 97 должен быть равен 1.

Мы абсолютные новички. Темой нашей сегодняшней лекции была тема «время и цикл», поэтому код должен быть простым. Я предполагаю, что это как-то связано со списками, потому что вы добавляете числа, но мы еще не говорили о списках в лекции.

Моя попытка:

# add 9 to the letter
D = 13
E = 14
F = 15
R = 28
C = 12
H = 17

list = ibannummer = input ('Enter your IBAN number')
if 'DE' in ibannummer :
    banknumber = ibannummer[5,6,7,8,9,10,11] #banknumber 70090100
    accountumber = ibannummer[12:] #accountnummer 1234567890
    valiationnumber = bankleitzahl + kontonummer.append(ibannummer[0,1,2,3])
      if valiationnumber % 97 == 1 :
                        print ('validierte IBAN')

1 Ответ

0 голосов
/ 02 ноября 2018

Это просто временная рабочая теория, основанная на том, что я понимаю:

IBAN = 'DE08700901001234567890'
if IBAN[0:2] == 'DE':
    testNumber = IBAN[2:4]
    bankNumber = IBAN[4:12]
    accNumber = IBAN[12:]
    valNumber= int("1314"+IBAN[6:]+IBAN[2:6])
    print(valNumber)
    if (valNumber%97)==1:
        print("This is a valid IBAN number")
    else:
        print("Excuse me sir, but this is not valid...")

однако этот код (если вы быстро его выполните) не совпадает с вашим кодом проверки, который вы дали. Если вы хотите, чтобы DE считался числом:

IBAN = 'DE08700901001234567890'
if IBAN[0:2] == 'DE':
    testNumber = IBAN[2:4]
    bankNumber = IBAN[4:12]
    accNumber = IBAN[12:]
    valNumber= int(bankNumber+accNumber+str(1314)+testNumber)
    print(valNumber)
    if (valNumber%97)==1:
        print("This is a valid IBAN number")
    else:
        print("Excuse me sir, but this is not valid...")

Я не понимаю, почему вы должны были сделать все буквы = к числу (т.е. D = 13), так как вы проверяете, начинается ли оно с DE, которое, как вы знаете, будет 1314, несмотря ни на что.

...