按照身份证字号编码规则,输入身份证字号后,先判断是否有“十码”,接着判断第二码是否为 1 或 2,最后判断检查码,当三层判断都是 True 时,表示身份证字号正确。

新增一个 local_table 变数,内容是第一码英文数字的对照表,再新增一个变数 id_number 记录使用者输入的身份证字号。

将英文字对应的两位数的数字,记录到 check_arr 变数变成两个项目 ( 记录为数字 ),作为最后检查码的判断使用。

最后套用第十码检查码的程式,计算检查码是否相同,如果不相同,就跳出 while 循环,如果相同,最后加上 check=True,表示检查完全正确,循环结束后,根据 check 的 True 或 False,印出对应的结果。

虽然上述的程式已经可以检查身份证字号,但如果使用者输入一串奇怪的文字,例如 xyz,可能就会发生错误而导致程式无法运作,这时可以加入 try 和 except 做检查和保护,如果遇到例外的状况,就直接跳出 while 循环。