Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python3.2
- # -*- coding: Utf-8 -*-
- '''create by: zfox, 17.09.2012'''
- class NumToWordHu():
- '''Kiirja az numerikus egész számokat szöveges formában 1-től billió-1 -ig '''
- def __init__(self,number):
- self.number=int(number)
- self.numbertext=''
- self.singles=['','egy','kettõ','három','négy','öt','hat','hét','nyolc','kilenc']
- self.teens=['',['tíz','tizen'],['húsz','huszon'],'harminc','negyven','ötven', \
- 'hatvan','hetven','nyolcvan','kilencven']
- for thousandtext,exp in [('milliárd',3),('millió',2),('ezer',1),('',0)]:
- self.numbertext+=self.thousandgroup(thousandtext,1000**exp)
- def thousandgroup(self,thousandtext,divider):
- hundreds,self.number=divmod(self.number,divider)
- return self.hundredtext(hundreds)+['',thousandtext][hundreds>0]+['','-'][self.number>0 and hundreds>0]
- def hundredtext(self,hundreds):
- hundred,tens=divmod(hundreds,100)
- teen,single=divmod(tens,10)
- return self.singles[hundred]+['','száz'][hundred>0]+ \
- (self.teens[teen][single>0] if 0<teen<3 else self.teens[teen])+ \
- self.singles[single]
- class NumToWordEng():
- ''' Convert number to English words 1 to trillion-1'''
- def __init__(self,number):
- self.number=int(number)
- self.numbertext=''
- self.singles=['','one','two','three','four','five','six','seven','eight','nine']
- self.tentonineteen=['ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen', \
- 'seventeen','eighteen','nineteen']
- self.teens=['','','twenty','thirty','forty','fifty','sixty','seventy','eighty','ninety']
- for thousandtext,exp in [('billion',3),('million',2),('thousand',1),('',0)]:
- self.numbertext+=self.thousandgroup(thousandtext,1000**exp)
- def thousandgroup(self,thousandtext,divider):
- hundreds,self.number=divmod(self.number,divider)
- return self.hundredtext(hundreds)+['',' '+thousandtext+' '][hundreds>0]
- def hundredtext(self,hundreds):
- hundred,tens=divmod(hundreds,100)
- teen,single=divmod(tens,10)
- ands=tens>0 and self.number<100 and (len(self.numbertext)>0 or hundred>0)
- return self.singles[hundred]+['',' hundred '][hundred>0]+['','and '][ands]+ \
- (self.tentonineteen[single] if teen==1 else self.teens[teen]+['','-'][single>0 and teen>1])+ \
- ['',self.singles[single]][teen!=1]
- if __name__=='__main__':
- import sys
- try:
- number=int(sys.argv[1])
- a=NumToWordHu(number)
- b=NumToWordEng(number)
- print(number)
- print(a.numbertext)
- print(b.numbertext)
- except:
- print('Not number!, Nem szám!')
Advertisement
Add Comment
Please, Sign In to add comment