python3 题解(46 身份证号码校验)

本文介绍了如何使用Python3对18位身份证号码进行校验,详细解析了校验规则:前17位数字分别乘以特定权值求和后,总和对11取模应为1。最后一位校验位可能是0-9或X,通过枚举法确定正确校验位。并推荐了相关Python学习资源。
摘要由CSDN通过智能技术生成

身份证号码校验

【问题】目前使用的身份证号码是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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值