为实现统一性,我们必须编写代码,以验证德国,瑞士和法国的IBAN。德语IBAN DE08700901001234567890包含两个字母“ DE”,测试号08,银行号70090100和帐号1234567890。对于字母,您必须在其数字上加上+9(A = 10,B = 11,... Z = 35)。
要验证IBAN,必须将前四个数字移到末尾,并用字母DE补充字母1314。验证号700901001234567567890131408 Modul0 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')
答案 0 :(得分:1)
这只是基于我所了解的临时工作理论:
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。