身份证号码校验
【问题】目前使用的身份证号码是18位的。如果在需要输入身份证的时候,随便编一个数字上去,十有八九是不能通过的。因为,这18位编码要符合一定的校验规则。
具体地说,把18位编码的每一位乘以一个权值加起来,总和对11求模,结果必须为1。
身分证编码的前17位数必需是数字,最后一位是校验位,可能是数字,也有可能是X,代表10。
请编程对已知的身份证号校验是否合格。
分析:
这个需求很明确,问题给出的描述基本就是算法了。
### 身分证号码校验
### 各位的权值 [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1]
def idCardCheck(s):
def v(s):
if s == 'x' or s == 'X': return 10
return ord(s) - ord('0')
w = [7,9,10,5