Ошибки APK

Как проверяется образец IBAN Азербайджана

На странице один номер: AZ84NABZ00000000137010002944. Это образец расчёта из правила Центрального банка. Это не счёт. Деньги на него не отправляют.

Вторая строка — тот же образец, изменена только последняя цифра. Это тоже не счёт.

Образец из 28 знаков. AZ — страна. Следующие две цифры — контроль. Потом идут четыре буквы. Остальные 20 знаков — место счёта. Если оно короткое, спереди пишут нули.

Проверка по ISO 7064, MOD 97-10. Первые четыре знака уходят в конец. Буква становится числом: A это 10, Z это 35. Полученное число делят на 97. Если остаток 1, контрольные цифры верны. Это не показывает, что счёт существует.

NUMUNE = "AZ84NABZ00000000137010002944"
# Eyni nümunədir. Yalnız son rəqəm dəyişib. Hesab deyil.
POZUK = "AZ84NABZ00000000137010002945"

def qaliq(iban: str) -> int:
    metn = iban.replace(" ", "").upper()
    if not (len(metn) == 28 and metn.startswith("AZ")):
        raise ValueError("format")
    kecmis = metn[4:] + metn[:4]
    reqem = "".join(str(ord(h) - 55) if h.isalpha() else h for h in kecmis)
    return int(reqem) % 97

print(qaliq(NUMUNE))
print(qaliq(POZUK))