001.组织机构代码生成

#!/usr/bin/python
#全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉丁字母)校验码组成
import random

def OrgCode():
     factorList = [3, 7, 9, 10, 5, 8, 4, 2]#加权因子列表
     OrgCode = []#用于存放生成的组织机构代码
     sum = 0
     for i in range(8):#随机取前8位数字
         OrgCode.append(random.randint(1, 9))#随机取1位数字
         sum = sum +OrgCode[i]*factorList[i]#用orgCode*加权因子
         # print(dd)
     for i in range(len(OrgCode)):
         OrgCode[i] = str(OrgCode[i])#将orgCode(int)变成str
     C9 = 11-sum % 11 #C9代表校验码。用已经生成的前8位加权后与11取余,然后用11减
     # print(C9)
     if C9 == 10:#当C9的值为10时,校验码应用大写的拉丁字母X表示;当C9的值为11时校验码用0表示;除此之外就是C9本身
          C9 = 'X'
     else:
          if C9 == 11:
               C9 = '0'
          else:
               C9 = str(C9)
     OrgCode.append('-' + C9)
     return "".join(OrgCode)#拼接最终生成的组织代码

for i in range(2):
     print(OrgCode())






猜你喜欢

转载自blog.csdn.net/baidu_27361307/article/details/80845894