اتبع الخطوات التالية : (خطوات الفحص موجودة في ويكيبيديا)
- اختبر إذا كان طول IBAN ما بين 14 و 35
- انقل الحروف الأربعة الأولى إلى نهاية الرقم
- قم بتغيير كل حرف في سلسلة الأيبان برقمين، مثلا A نقوم بتغييرها إلى 10 و B إلى 11 وهكذا و ..... Z إلى 35
- قم بترجمة الناتج كرقم واحد ثم اختبر باقي قسمة هذا الرقم على 97 ، إذا كان الباقي 1 فإن السلسلة هي سلسلة أيبان وإلا فإن الأيبان غير صحيح.
مثال : اختبار إن كانت سلسلة الإيبان الآتية صحيحة
- الأيبان : GB82 WEST 1234 5698 7654 32
- أعد الترتيب: W E S T12345698765432 G B82
- حول إلى رقم : 3214282912345698765432161182
- احسب باقي القسمة:
3214282912345698765432161182 mod 97 = 1
قمت بتصميم كود البايثون التالي لعمل ذلك
United_Kingdom="GB29 NWBK 6016 1331 9268 19"
iban=United_Kingdom
iban=iban.replace(" ","")
if len(iban)>31 or len(iban) <15:
print("Invalid length of the IBAN")
else:
iban=(iban[4:]+iban[0:4]).upper()
iban2=''
for ch in iban:
if ch.isdigit():
iban2 += ch
else:
iban2 += str(ord(ch)-ord('A')+10)
ibann=int(iban2)
if ibann % 97 == 1 :
print("Valid IBAN")
else:
print("Invalid IBAN, sorry")
تحياتي
د. أسامة حسام الدين
No comments:
Post a Comment