Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

conversion

1 réponse
Avatar
Boa Guy Serge
Bonsoir, exciste t'il une fonction en python qui permet de convertir
les chiffres en lettres ou les lettres en chiffres
Exemple
1 ------ un
2 ------ deux
merci de vos reponses

1 réponse

Avatar
Méta-MCI \(MVP\)
Bonsoir !

Ci-dessous, un script que j'avais fait à mes débuts en Python (donc non
optimisé).

@-salutations
--
Michel Claveau






# -*- coding: utf-8 -*-


"""
Traduction d'un nombre en texte.
Réalisation : Michel Claveau http://mclaveau.com

SVP, n'enlevez pas mon adresse/URL ; merci d'avance

Usage : voir les exemples, à la fin du script.

Note : traduction franco-française, avec unités variables, orthographe
géré, unités et centièmes.
"""

import sys




def trad(nb, unite='euro', decim='centime'):
"""
Traduction de sommes en lettres.
Exemples :
print 12.30,trad(12.30,'heure','minute')
print 12.03,trad(12.03,'heure','minute')
print 12.30,trad(12.30,'heure','')
print 1.8,trad(1.8,'mètre','')
print 2.5,trad(2.5,'litre','')
print 3.5,trad(3.5,decim='')
print 300,trad(300)
print 301,trad(301)
print 1000,trad(1000)
print 1001,trad(1001)
print 1400,trad(1400)
print 1401,trad(1401)
print 0,trad(0)
print -650.92,trad(-650.92)
"""

def tradd(num):
ch=''
if num==0 :
ch=''
elif num<20:
ch=t1[num]
elif num> :
if (num>p and num<y)or(num>):
z=int(num/10)-1
else:
z=int(num/10)
ch=t2[z]
num=num-z*10
if (num==1 or num=) and z<8:
ch=ch+' et'
if num>0:
ch=ch+' '+tradd(num)
else:
ch=ch+tradd(num)
return ch


def tradn(num):
ch=''
flagcentúlse
if num>00000000:
z=int(num/1000000000)
ch=ch+tradn(z)+' milliard'
if z>1:
ch=ch+'s'
num=num-z*1000000000
if num>00000:
z=int(num/1000000)
ch=ch+tradn(z)+' million'
if z>1:
ch=ch+'s'
num=num-z*1000000
if num>00:
if num>0000:
z=int(num/100000)
if z>1:
ch=ch+' '+tradd(z)
ch=ch+' cent'
flagcent=True
num=num-z*100000
if int(num/1000)==0 and z>1:
ch=ch+'s'
if num>00:
z=int(num/1000)
if (z==1 and flagcent) or z>1:
ch=ch+' '+tradd(z)
num=num-z*1000
ch=ch+' mille'
if num>0:
z=int(num/100)
if z>1:
ch=ch+' '+tradd(z)
ch=ch+" cent"
num=num-z*100
if num==0 and z>1:
ch=ch+'s'
if num>0:
ch=ch+" "+tradd(num)
return ch


nb=round(nb,2)
t1=["","un","deux","trois","quatre","cinq","six","sept","huit","neuf","dix","onze","douze","treize","quatorze","quinze","seize","dix-sept","dix-huit","dix-neuf"]
t2=["","dix","vingt","trente","quarante","cinquante","soixante","septante","quatre-vingt","nonante"]
t2=["","dix","vingt","trente","quarante","cinquante","soixante","soixante-dix","quatre-vingt","quatre-vingt-dix"]
z1=int(nb)
z3«s((nb-z1)*100)
z2=int(round(z3,0))
if z1==0:
ch="zéro"
else:
ch=tradn(abs(z1))
if z1>1 or z1<-1:
if unite!='':
ch=ch+" "+unite+'s'
else:
ch=ch+" "+unite
if abs(z2)>0.005:
ch=ch+tradn(z2)
if z2>1 or z2<-1:
if decim!='':
ch=ch+" "+decim+'s'
else:
ch=ch+" "+decim
if nb<0:
ch=" moins"+ch
return ch



if __name__=='__main__':
print ''
print 'Exemples :'
print '-------- '
#print 812000, trad(812000)
#print 183.93,trad(183.93)
#print 4199.88,trad(4199.88)
#print 613812345651.01,trad(613812345651.01)
print 1,trad(1)
print 2.2,trad(2.2)
print 2.02,trad(2.02)
#sys.exit()
print 12.30,trad(12.30,'heure','minute')
print 12.03,trad(12.03,'heure','minute')
print 12.30,trad(12.30,'heure','')
print 1.8,trad(1.8,'mètre','')
print 2.5,trad(2.5,'litre','')
print 3.5,trad(3.5,decim='')
print 300,trad(300)
print 301,trad(301)
print 1000,trad(1000)
print 1001,trad(1001)
print 1400,trad(1400)
print 1401,trad(1401)
print 0,trad(0)

print 650.52,trad(650.52)
print -650.92,trad(-650.92)
print -650.33,trad(-650.33)


print -1650.33,trad(-1650.33)
print float("1650.33")