2024年10月23日 星期三

sd Q6

 instr = '''

E221142995,Tsum,F

A123456789,TRight,M

A123456789,Tsex,F

A1234X6789,TFormat,F

'''.strip()


id,nam,sex,msg  = 'ID_NO','NAME','SEX','ERROR'

print(f'{id:15} {nam:10} {sex:10} {msg:<10} ')


for i in instr.splitlines():

  id,nam,sex = i.strip().split(',')


  msg = ''

  if not('A'<=id[0]<='Z'):

    msg = 'FORMAT ERROR'

  if msg == '':

    for j in id[1:]:

      if not('0'<=j<='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 =='':

    d2 = 'ABCDEFGHJKLMNPQRSTUVXYWZIO'.index(id[0])+10

    x1 = d2//10

    x2 = d2%10

    d = [int(i) for i in id[1:]]

    d = [0] + d

    y = x1 + 9 * x2 

    k = 8

    for i in range(1,7+1):

      y = y + k*d[i]

      k-=1

    y = y + d[8]+d[9]

    if not(y%10==0):

      msg = 'CHECK SUM ERROR'

  print(f'{id:15} {nam:10} {sex:10} {msg:<10} ')

沒有留言:

張貼留言