标签:10 code CAS Number 校验码 length check
一个CAS编号以连字符“-”分为三部分,第一部分有2到7位数字,第二部分有2位数字,第三部分有1位数字作为校验码。
CAS编号以升序排列且没有任何内在含义。校验码的计算方法如下:CAS顺序号(第一、二部分数字)的最后一位乘以1,最后第二位乘以2,往前依此类推,然后再把所有的乘积相加,再把和除以10,其余数就是第三部分的校验码。
举例来说,水(H2O)的CAS编号前两部分是7732-18,则其校验码= ( 8×1 + 1×2 + 2×3 + 3×4 + 7×5 + 7×6 ) mod 10 = 105 mod 10 = 5(mod是求余运算符)
这是百科上的解释
怎么验证呢,比如给一个CAS号,如何验证是否是合格的呢?
def check_casnum(cas_str="5080-50-2"): # 最后一位校验码 last_code = cas_str[-1] # 去掉校验码之后的数据 check_code = cas_str[:-1].replace("-", "") # 计算长度 length_code = len(check_code) # 结果集 sum_data = 0 for dd in check_code: sum_data += int(dd)*length_code # 计算一位递减 length_code = length_code - 1 # print(length_code) check_result = sum_data % 10 print(last_code, check_result) print(str(check_result) == last_code)
这是自己写的一个验证方法,测试发现没什么问题
标签:10,code,CAS,Number,校验码,length,check 来源: https://www.cnblogs.com/fly-kaka/p/15479152.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。