Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- My goal is to read number up to 12 digits only.
- I hope that could satisfy you.
- THANKS FOR READING
- '''
- #FUNC TO GET NUMBERS OF NUM
- def getNum(num):
- while num!=0:
- x = num%10
- getNumArr.insert(0, x)
- num = int(num/10)
- #READING 1 DIGIT NUMBER
- def rd1dgt(getNumArr):
- if len(getNumArr) == 1:
- return numDict[getNumArr[0]]
- #READING 2 DIGITS NUMBER
- def rd2dgt(getNumArr):
- if len(getNumArr) == 2:
- if getNumArr[0] == 1:
- if getNumArr[1] != 0:
- return 'mười', numDict[getNumArr[1]]
- else:
- x = ['mười']
- return x
- else:
- if getNumArr[1] != 0:
- if getNumArr[1] == 1:
- return numDict[getNumArr[0]], 'mươi mốt'
- else:
- return numDict[getNumArr[0]], 'mươi', numDict[getNumArr[1]]
- else:
- return numDict[getNumArr[0]], 'mươi'
- #READING 3 DIGITS
- def rd3dgt(getNumArr):
- while True:
- if len(getNumArr) == 1:
- return rd1dgt(getNumArr)
- if len(getNumArr) == 2:
- return rd2dgt(getNumArr)
- else:
- #X00000
- if (getNumArr[0] == 0) and (getNumArr[1] == 0) and (getNumArr[2] == 0):
- return None
- #X00000
- if (getNumArr[0] == 0) and (getNumArr[1] == 0) and (getNumArr[2] != 0):
- return 'lẻ', numDict[getNumArr[2]]
- #0X0000
- if (getNumArr[0] == 0) and (getNumArr[1] != 0):
- prtList = ['lẻ']
- for i in rd2dgt(getNumArr[1:]):
- prtList.append(i)
- return prtList
- if (getNumArr[1] == 0) and (getNumArr[2] == 0):
- return numDict[getNumArr[0]], 'trăm'
- else:
- prtList = [numDict[getNumArr[0]], 'trăm']
- if getNumArr[1] == 0:
- prtList.append('lẻ')
- prtList.append(numDict[getNumArr[2]])
- return prtList
- else:
- subArr = getNumArr[1:]
- for i in rd2dgt(subArr):
- prtList.append(i)
- return prtList
- #GET NUM
- num = int(input())
- #CREATING ARRAY FOR STORING NUMBERS
- getNumArr = []
- numSplit = [[],[],[],[]]
- #CREATING DICT TO READ 1-10
- numDict= {
- 0: 'mươi',
- 1: 'một',
- 2: 'hai',
- 3: 'ba',
- 4: 'bốn',
- 5: 'lăm',
- 6: 'sáu',
- 7: 'bảy',
- 8: 'tám',
- 9: 'chín'
- }
- getNum(num)
- while True:
- #HANDLING 1 DIGIT NUMBER
- if num==0:
- print('không')
- break
- if len(getNumArr) == 1:
- print(rd1dgt(getNumArr))
- break
- #HANDLING 2 DIGITS NUMBER
- if len(getNumArr) == 2:
- temp = rd2dgt(getNumArr)
- for i in temp:
- print(i, end = ' ')
- break
- #HANDLING 3 DIGITS NUMBER
- if len(getNumArr) == 3:
- for i in rd3dgt(getNumArr):
- print(i, end = ' ')
- break
- #SPLITTING NUMBER INTO GROUP OF 3
- #6 DIGITS
- if (len(getNumArr) > 3) and (len(getNumArr) <=6):
- div = len(getNumArr)%3
- if div != 0:
- numSplit[2] = getNumArr[:div]
- numSplit[3] = getNumArr[div:]
- else:
- numSplit[2] = getNumArr[:3]
- numSplit[3] = getNumArr[3:]
- #THOUSAND
- if len(numSplit[2]) == 1:
- print(rd1dgt(numSplit[2]), end = ' ')
- else:
- for i in rd3dgt(numSplit[2]):
- print(i, end = ' ')
- print('nghìn', end = ' ')
- #HUNDRED
- if rd3dgt(numSplit[3]) != None:
- for i in rd3dgt(numSplit[3]):
- print(i, end = ' ')
- #9 DIGITS
- if (len(getNumArr) > 6) and (len(getNumArr) <=9):
- div = len(getNumArr)%3
- if div != 0:
- numSplit[1] = getNumArr[:div]
- div1 = div + 3
- numSplit[2] = getNumArr[div:div1]
- numSplit[3] = getNumArr[div1:]
- else:
- numSplit[1] = getNumArr[:3]
- numSplit[2] = getNumArr[3:6]
- numSplit[3] = getNumArr[6:]
- #MILLION
- if len(numSplit[1]) == 1:
- print(rd1dgt(numSplit[1]), end = ' ')
- else:
- for i in rd3dgt(numSplit[1]):
- print(i, end = ' ')
- print('triệu', end = ' ')
- #THOUSAND
- if rd3dgt(numSplit[2]) != None:
- for i in rd3dgt(numSplit[2]):
- print(i, end = ' ')
- print('nghìn', end = ' ')
- #HUNDRED
- if rd3dgt(numSplit[3]) != None:
- for i in rd3dgt(numSplit[3]):
- print(i, end = ' ')
- #12 DIGITS
- if (len(getNumArr) > 9) and (len(getNumArr) <=12):
- div = len(getNumArr)%3
- if div != 0:
- numSplit[0] = getNumArr[:div]
- div1 = div + 3
- numSplit[1] = getNumArr[div:div1]
- div2 = div1 + 3
- numSplit[2] = getNumArr[div1:div2]
- numSplit[3] = getNumArr[div2:]
- else:
- numSplit[0] = getNumArr[:3]
- numSplit[1] = getNumArr[3:6]
- numSplit[2] = getNumArr[6:9]
- numSplit[3] = getNumArr[9:]
- #BILLION
- if len(numSplit[0]) == 1:
- print(rd1dgt(numSplit[0]), end = ' ')
- else:
- for i in rd3dgt(numSplit[0]):
- print(i, end = ' ')
- print('tỷ', end = ' ')
- #MILLION
- if rd3dgt(numSplit[1]) != None:
- for i in rd3dgt(numSplit[1]):
- print(i, end = ' ')
- print('triệu', end = ' ')
- #THOUSAND
- if rd3dgt(numSplit[2]) != None:
- for i in rd3dgt(numSplit[2]):
- print(i, end = ' ')
- print('nghìn', end = ' ')
- #HUNDRED
- if rd3dgt(numSplit[3]) != None:
- for i in rd3dgt(numSplit[3]):
- print(i, end = ' ')
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement