中国企业工商注册码前六位为行政区代码,中间8位顺序编码,最后一位为根据ISO 7064:1983.MOD 11-2校验码计算出来的检验码,本算法根据最后一位校验码的算法来判断企业注册码是否合法,同时稍作修改也可用于判断其他校验码是否正确

 checknum.py

#coding: utf-8
def getchecknum(input): ##定义企业注册码校验码计算函数
  n = 10
  for num in range(len(input)):
    n = (int(input[num]) + n)%10
    if n == 0:
      n = 10
    n = n*2%11
  if n == 0:
    s = 1
  elif n== 1:
    s = 0
  else:
    s = 11-n
  return str(s)
 
code = raw_input(u\'请输入该企业15位注册码:\')
while True:
  try:
    len(code) == 15
    num = code[:14]
    check_num = int(code[14])
    if check_num == int(getchecknum(num)):
      print u\'恭喜你,注册码正确。\'
    else:
      print u\'请注意,该注册码错误!!!\'
 
    break
  except:
    print u\"请输入正确的企业15位注册码\"
raw_input(u\'按任意键退出\')