PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.python > conversion
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
conversion

Réponse
 
LinkBack Outils de la discussion
Vieux 25/08/2008, 20h35   #1
Boa Guy Serge
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut conversion

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
  Réponse avec citation
Vieux 25/08/2008, 23h47   #2
Méta-MCI \(MVP\)
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: conversion

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>=20:
if (num>=70 and num<=79)or(num>=90):
z=int(num/10)-1
else:
z=int(num/10)
ch=t2[z]
num=num-z*10
if (num==1 or num==11) 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=False
if num>=1000000000:
z=int(num/1000000000)
ch=ch+tradn(z)+' milliard'
if z>1:
ch=ch+'s'
num=num-z*1000000000
if num>=1000000:
z=int(num/1000000)
ch=ch+tradn(z)+' million'
if z>1:
ch=ch+'s'
num=num-z*1000000
if num>=1000:
if num>=100000:
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>=1000:
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>=100:
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","qua torze","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=abs((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")



  Réponse avec citation
Vieux 25/08/2008, 23h47   #3
Méta-MCI \(MVP\)
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: conversion

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>=20:
if (num>=70 and num<=79)or(num>=90):
z=int(num/10)-1
else:
z=int(num/10)
ch=t2[z]
num=num-z*10
if (num==1 or num==11) 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=False
if num>=1000000000:
z=int(num/1000000000)
ch=ch+tradn(z)+' milliard'
if z>1:
ch=ch+'s'
num=num-z*1000000000
if num>=1000000:
z=int(num/1000000)
ch=ch+tradn(z)+' million'
if z>1:
ch=ch+'s'
num=num-z*1000000
if num>=1000:
if num>=100000:
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>=1000:
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>=100:
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","qua torze","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=abs((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")



  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 02h48.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,14222 seconds with 11 queries