python 身份证校验位计算
2011-03-24 11:18
621 查看
以后可能用得到
# -*- coding:gbk -*-
#S+=Sum(Ai*Wi);
#Ti[S%11]
import sys
class IdentityCard:
def __init__( self ):
self.__Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
self.__Ti = ['1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2']
def check( self, code ):
if (len(code) != 17):
print "必须为17位的字符"
return False
return True
def calculate( self, code ):
sum = 0
for i in range(17):
sum += int(code[i])*self.__Wi[i]
return self.__Ti[sum%11]
def test():
ic = IdentityCard()
code = "33000000000000000" #17位身份证
if ic.check(code):
print "你的校验位为:%s"%ic.calculate(code)
if __name__ == '__main__':
test()
# -*- coding:gbk -*-
#S+=Sum(Ai*Wi);
#Ti[S%11]
import sys
class IdentityCard:
def __init__( self ):
self.__Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
self.__Ti = ['1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2']
def check( self, code ):
if (len(code) != 17):
print "必须为17位的字符"
return False
return True
def calculate( self, code ):
sum = 0
for i in range(17):
sum += int(code[i])*self.__Wi[i]
return self.__Ti[sum%11]
def test():
ic = IdentityCard()
code = "33000000000000000" #17位身份证
if ic.check(code):
print "你的校验位为:%s"%ic.calculate(code)
if __name__ == '__main__':
test()
相关文章推荐
- python实现身份证校验位计算
- 一个计算身份证号码校验位的Python小程序
- python实现身份证校验位计算
- python实现身份证校验位计算
- python实现身份证校验位计算
- python根据身份证前17位数计算第18位数
- 身份证末尾校验位计算OC
- 身份证 15位升级18位 和最后一位校验位计算
- Python ISBN号概述,校验位计算,10位-13位转换,验证,连字符,及常用库isbnid,isbnlib,isbntools的使用
- 二代身份证号码最后一位校验位的计算方法
- [PHP]身份证校验位的计算/ISO 7064:1983.MOD 11-2 算法
- [python]使用python实现Hadoop MapReduce程序:计算一组数据的均值和方差
- Python实现计算圆周率π的值到任意位的方法示例
- [python]My Unique JsonDiff算法——如何计算2个json串之间的差距并Diff出来(一):编辑距离(Levenshtein)算法
- 使用Python计算物品的流行度和用户所评物品的平均流行度
- [python计算金额]decimal常用操作
- python float精度计算
- Python 专题四 python 科学计算
- Python计算任意多边形面积算法