Generateurv2/backend/api/api/Generateur/Generateur_special/modules/nbletter.py

111 lines
3.2 KiB
Python

def nbletter(nombre):
ten_pre = {'2': "vingt-",
'3': "trente-",
"4": "quarante-",
"5": "cinquante-",
"6": "soixante-",
"7": "soixante-",
"8": "quatre-vingt-"}
chiffre = {'0': "zéro ",
'1': "un",
'2': "deux",
'3': "trois",
'4': "quatre",
'5': "cinq",
'6': "six",
'7': "sept",
'8': "huit",
'9': "neuf",
'10': "dix",
'11': "onze",
'12': "douze",
'13': "treize",
'14': "quatorze",
'15': "quinze",
'16': "seize",
'20': "vingt",
'30': "trente",
'40': "quarante",
'50': "cinquante",
'60': "soixante",
'70': "soixante-dix",
'80': "quatre-vingts",
'90': "quatre-vingt-dix",
'100': "cent",
'71': "soixante et onze",
'91': "quatre-vingts-onze"}
for i in range(7, 10):
chiffre[str(i+10)] = "dix-"+chiffre[str(i)]
for x in range(2, 7):
#print(str(x * 10))
chiffre[str(x) +
"1"] = chiffre[str(x * 10)] + " et un"
#print("\n", chiffre.get(61))
for y in range(1, 10):
#print(90+y)
chiffre[str(90 + y)] = "quatre-vingts-" + \
chiffre[str(y + 10)]
for y in range(1, 10):
#print(90+y)
chiffre[str(70 + y)] = "soixante-" + \
chiffre[str(y + 10)]
#print(chiffre["99"])
avirgule = str(nombre).split(".")[0]
aprevirgule = str(nombre).split(".")[1]
#print(avirgule)
def letter(nbrond):
if nbrond[0] == "0":
return "zero " + str(chiffre[nbrond[1]])
if nbrond[0] == "1":
return chiffre[nbrond]
else:
part = ten_pre[str(nbrond[0])]
return part+str(chiffre[nbrond[1]])
try:
avirgule = chiffre[str(avirgule)]
#print("try")
except:
avirgule = letter(avirgule)
#print(avirgule)
def fraction(nb):
if len(nb) == 1:
# print("2 : ", len(nb))
if nb == "1":
# print(f"ON EST LAAAA : {nb}")
return chiffre[str(nb)] + " dixième"
else:
# print(f"eh non : {nb}")
return chiffre[str(nb)] + " dixièmes"
elif len(nb) == 2:
if nb[0] == "0":
if nb[1] == "1":
#print("ttttest" +nb[1])
return chiffre[str(nb[1])] + " centième"
else:
#print("test" +nb[1])
return chiffre[str(nb[1])] + " centièmes"
else:
#print(f"tesst : {nb[0]}")
try:
aprevirgule = chiffre[nb]
except:
aprevirgule = letter(nb)
finally:
return aprevirgule + " centièmes"
aprevirgule = fraction(aprevirgule)
#print(f"{avirgule}, {aprevirgule}")
return avirgule + " et " + aprevirgule