-1

对于大学,我们必须编写一个代码来验证德国、瑞士和法国的 IBAN。德国 IBAN DE08700901001234567890 包含两个字母“DE”,测试编号 08,银行编号 70090100 和帐号 1234567890。对于字母,您必须在他的号码上添加 +9(A = 10,B = 11,... Z = 35)。

为了验证 IBAN,前四个数字必须移到末尾,字母 DE 应替换为 1314。验证数字 700901001234567890131408 Modul0 97 必须为 1。

我们是绝对的初学者。我们今天讲座的主题是“while 循环和 for 循环”,所以代码需要简单。我认为,它与列表有关,因为您添加了数字,但我们还没有在讲座中讨论过列表。

我的尝试:

# 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')
4

1 回答 1

2

根据我的理解,这只是一个临时的工作理论:

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。

于 2018-11-02T17:51:12.277 回答