def func(s):
# 判断位数合法性
if len(s) != 10:
return False
A = []
sum = 0
# 前9位转成int
for i in s[:-2]:
A.append(int(i))
# 判断最后一位是否为X,是则转化成10
if s[-1] == "X":
A.append(10)
else:
A.append(int(s[-1]))
# 数字之和乘以它们的位置模11是否为0,是则返回True,否则返回False
for i in range(len(A)):
sum += (i + 1) * A[i]
if sum % 11 == 0:
return True
else:
return False
while True:
s = input()
if s == "":
break
print(func(s))
判断合法的ISBN
最新推荐文章于 2026-03-31 20:09:36 发布
该代码实现了一个函数,用于验证输入的字符串是否为合法的中国身份证号码。它首先检查长度是否为10,然后将前9位转换为整数,最后一位如果是字母'X'则转换为10,接着计算所有数字与其位置的乘积之和,如果这个和模11等于0,则身份证号码合法,返回True,否则返回False。

839

被折叠的 条评论
为什么被折叠?



