import random
#HARD CODE PARAM
delim = 3
words = ["милиона", "хиляди", "", ""]
number = "".join([str(random.choice(range(1,11))) for i in range(1, random.choice(range(4, 7)))])
l = len(number)
print(number)
numbers = {
1:"Едно", 2:"Две", 3:"Три", 4:"Четири", 5:"Пет", 6:"Шест", 7:"Седем", 8:"Осем", 9:"Девет",
10:"Десет", 11:"Единадест", 12:"Дванадесет", 13:"Тринадесет", 14:"Четринадесет", 15:"Петнадесет",
16:"Шестнадесет", 17:"Седемнадесет", 18:"Осемнадесет", 19:"Деветнадесет", 20:"Двадесет",
30:"Тридесет", 40:"Четидредесет", 50:"Петдесет", 60:"Шейсет", 70:"Седемдесет", 80:"Осемдесет",
90:"Деветдесет", 100:"Сто", 200:"Двеста", 300:"Триста", 400:"Четиристотин", 500:"Петстотин",
600:"Шестотин", 700:"Седемстотин", 800:"Осемстотин", 900:"Деветстотин"
}
def coma_delimiter_number(number):
''' Разделя числото после се сплитва и се маха празният символ '''
result = "".join((i%delim==l%delim)*","+c for i, c in enumerate(number))
return list(map(int, list(filter(None,result.split(",")))))
def razbiva_chisloto(n):
''' Върти числото към стринг '''
if (len(str(n)) == 3 and n%100==0):
return("{}".format(numbers[n]))
elif (len(str(n)) == 3 and n%100!=0):
a, b = n-n%100, n%100
if b > 20:
c, d = b-b%10, b%10
return("{} {} и {}".format(numbers[a], numbers[c], numbers[d]))
else:
return("{} и {}".format(numbers[a], numbers[b]))
elif (len(str(n)) == 2) and 1<n<=20:
return((numbers[n]))
elif (len(str(n)) == 2) and n > 20:
a, b = n-n%10, n%10
return("{} и {}".format(numbers[a], numbers[b]))
else:
return(numbers[n])
if __name__ == '__main__':
result = coma_delimiter_number(number)
convert = []
for i, k in enumerate(result):
convert.append(razbiva_chisloto(k))
if len(convert) == 2:
print("{} хиляди {}".format(convert[0], convert[1].lower()))
elif len(convert) == 3:
print("{} милиона {} хиляди {}".format(convert[0], convert[1].lower(), convert[2].lower()))
else:
print("{}".format(convert[0].capitalize()))