#1031 查验身份证 (15 分)
代码展示:
N = eval(input())
def check(ID):
'''检查身份证号是否合法'''
if not (ID[:-1]).isdecimal():
return False
elif str(getCheckSum(ID[:-1])) == ID[-1]:
return True
else:
return False
def getCheckSum(numbers):
assert len(numbers)==17, '效验码长度错误'
cnt = 0
weight = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
for i in range(17):
cnt += int(numbers[i])*(weight[i])
cnt = cnt % 11
M = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
checkSum = M[cnt]
return checkSum
result = list()
for i in range(N):
ID = input().strip()
if check(ID):
pass
else:
result.append(ID)
if len(result) == 0:
print('All passed')
else:
# print(len(result))
print(*result,sep='\n')
测评结果: