2024年11月8日 星期五

身分證檢查 II

 dds = '''

B12X767544,ISAAC,M

B129767544,ISAAC,M

I129767544,ISAAC,F

A123456788,ISAAC,F

A123456788,ISAAC,M

A123456789,ISAAC,M

'''

for dd in dds.strip().splitlines():

  id,name,sex = dd.split(',')

  # print(id,name,sex)

  

  msg = '' 

  for i in id[1:]:

    if not('0' <= i <= '9'):

      msg = 'FORMAT ERROR'

  

  if msg == '':

    if not(id[1]=='1' and sex == 'M' or id[1]=='2' and sex == 'F'):

      msg = 'SEX CODE ERROR'

  

  if msg == '':  

    xx = 'ABCDEFGHJKLMNPQRSTUVXYWZIO'.find(id[0])+10

    x1 = xx//10

    x2 = xx%10

    

    d1 = int(id[1])

    d2 = int(id[2])

    d3 = int(id[3])

    d4 = int(id[4])

    d5 = int(id[5])

    d6 = int(id[6])

    d7 = int(id[7])

    d8 = int(id[8])

    d9 = int(id[9])

    

    y = x1+9*x2+8*d1+7*d2+6*d3+5*d4+4*d5+3*d6+2*d7+d8+d9

    if y%10!=0:

      msg = 'CHECK SUM ERROR'

  

  print(id,name,sex,msg)

  

# 執行結果

# B12X767544 ISAAC M FORMAT ERROR

# B129767544 ISAAC M CHECK SUM ERROR

# I129767544 ISAAC F SEX CODE ERROR

# A123456788 ISAAC F SEX CODE ERROR

# A123456788 ISAAC M CHECK SUM ERROR

# A123456789 ISAAC M 

沒有留言:

張貼留言