python マイナンバーのチェックデジット计算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python マイナンバーのチェックデジット计算相关的知识,希望对你有一定的参考价值。

def validate(mynum):
    if type(mynum) == str:
        if not mynum.isnumeric():
            return "not numeric1"
    elif not type(mynum) == int:
        return "not numeric2"
    
    mynum = str(mynum)
        
    digits = list(mynum)
    if(len(digits) != 12):
        return "not length 12"
    check_digit = int(digits.pop())
    #print("digit:" + str(check_digit))
    
    digits.reverse()
    #print(digits)
    
    s = 0
    for n in range(1, 12):
        p = int(digits[n-1])
        q = n + 1 if (n<=6) else n - 5
        s += p * q
    #print("sum:" + str(s))
    rem = s % 11
    tgt = rem if(rem <=1) else 11-rem
    #print("rem:" + str(rem))
    
    if rem <= 1:
        #print("check:0")
        return check_digit == 0
    else:
        #print("check:" + str(11-rem))
        return check_digit == (11 - rem)

print(validate(123456789010)) #=> false
print(validate(123456789011)) #=> false
print(validate(123456789012)) #=> false
print(validate(123456789013)) #=> false
print(validate(123456789014)) #=> false
print(validate(123456789015)) #=> false
print(validate(123456789016)) #=> false
print(validate(123456789017)) #=> false
print(validate(123456789018)) #=> true
print(validate(123456789019)) #=> false

以上是关于python マイナンバーのチェックデジット计算的主要内容,如果未能解决你的问题,请参考以下文章

javascript 英数字のチェック

javascript 连続した文字のチェック

テレワーク可/田町MySQLサーバーリソースチェック/問い合わせ対応業務

text git-commitのチェック#memo #git

html 年齢チェックのフォーム

markdown YUIS的イェットアナザーマイブログ