Advertisement
Lov83

Docsonguyenduong

Feb 23rd, 2020
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.48 KB | None | 0 0
  1. def int_reader(num):
  2.     my_dict1={0:'không', 1:'một', 2:'hai', 3:'ba', 4:'bốn', 5:'năm', 6:'sáu', 7:'bảy', 8:'tám', 9:'chín'}
  3.     my_dict2={1:'', 2:'mươi', 3:'trăm', 4:'nghìn', 5:'mươi'}
  4.     my_list=['']
  5.     digits=[x for x in str(num)]
  6.     digits.reverse()
  7.     counter=len(digits)
  8.     for i in range(counter, 0, -1):
  9.         n=int(digits.pop())
  10.         #1. xử lí trường hợp 'lẻ lăm' ở hàng đơn vị, đọc #3, #4
  11.         if i==1 and n==5 and my_list[-1]=='lẻ':
  12.             my_list.append('năm')
  13.         #2. xử lí trường hợp đọc 'không' ở hàng đơn vị
  14.         elif i==1 and n==0:
  15.             continue
  16.         #3. xử lí trường hợp 'không mươi' ở hàng chục, thay thành 'lẻ'
  17.         elif i==2 and n==0:
  18.             my_list.append('lẻ')
  19.             continue
  20.         #4. xử lí trường hợp đọc 'năm' ở hàng đơn vị, khi số có hai chữ số trở lên
  21.         #phải đọc là 'lăm'
  22.         # lưu ý trường hợp đọc 'lăm' khi n=5 do đó phải check my_list có đọc được số nào
  23.         #trước đó chưa hay là vẫn còn trống ('')
  24.         elif i==1 and n==5 and my_list[-1]!='':
  25.             my_list.append('lăm')
  26.         else:
  27.             my_list.append(my_dict1[n])
  28.         my_list.append(my_dict2[i])
  29.     return my_list
  30.    
  31. if __name__=="__main__":
  32.     n=int(input('Nhập một số nguyên: '))
  33.     s=int_reader(n)
  34.     for i in s:
  35.         print(i, end=' ')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement