2 votes

Chaînes de chiffres en chaînes de mots en Python

J'ai des difficultés à convertir une chaîne de caractères en entier en python.

Voici mon code :

n=['33','12','45']
for i in range(len(n)):
    if n[i]=='33':
        print('thirty three')
    if n[i]=='12':
        print('twelve')
    if n[i]=='45':
        print('forty five')

Ce code fonctionne bien, mais je veux un code plus court s'il y a plus de nombres comme ceux-ci, qui seront convertis de chaîne en entier.

Veuillez m'aider :)

3voto

U9-Forward Points 8640

Utilisez le inflect module :

>>> import inflect
>>> p = inflect.engine()
>>> p.number_to_words(33)
thirty-three

En inflect peut convertir n'importe quel nombre en ses représentants verbaux.

Pour installer le inflect faites ce qui suit dans votre invite de commande :

pip install inflect

Ainsi, dans votre exemple de code, vous devriez faire :

n = ['33', '12', '45']
p = inflect.engine()
for i in n:
    print(p.number_to_words(int(i)))

Sortie :

thirty-three
twelve
forty-five

2voto

Heroic Hitesh Points 63

@big buddy La façon la plus simple de résoudre votre problème est d'utiliser un paquet appelé num2words en utilisant pip install num2words .

Alors vous pouvez simplement passer l'entier comme argument à num2words() . Dans votre cas, ce sera

n=['33','12','45']
for i in range(len(n)):
    print(num2words(n[i]))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X