Python >> Tutoriel Python >  >> Python

Comment imprimer un entier avec des virgules comme séparateurs de milliers en Python ?

Formulation du problème :Étant donné un nombre entier. Comment convertir l'entier en une représentation sous forme de chaîne pour l'impression ou toute autre utilisation comportant des milliers de séparateurs ?

Exemple :

  • Étant donné un nombre entier 1000000 .
  • Vous voulez la représentation sous forme de chaîne '1,000,000' .

Méthode 1 :Chaînes f

L'utilisation des f-strings modernes est, à mon avis, la solution la plus pythonique pour ajouter des virgules comme séparateurs de milliers pour toutes les versions Python supérieures à 3.6 :f'{1000000:,}' . La partie intérieure entre accolades :, dit de formater le nombre et d'utiliser des virgules comme séparateurs de milliers.

>>> f'{1000000:,}'
'1,000,000'

Méthode 2 :string.format()

>>> '{:,}'.format(1000000)
'1,000,000'

Vous utilisez l'expression de langage de spécification de format '{:,}' pour convertir le nombre entier 1000000 en une chaîne avec des virgules comme séparateurs de milliers.

  • La partie extérieure, les accolades '{...}' dit d'utiliser le nombre passé dans le format() servir de base au processus de formatage.
  • La partie intérieure entre les accolades :, dit de formater le nombre et d'utiliser des virgules comme séparateurs de milliers.

Méthode 3 :string.format() + string.replace() pour obtenir des points sous forme de séparateurs de milliers

Si vous utilisez des points comme séparateur de milliers, par exemple dans 1.000.000 comme cela se fait en Europe, vous pouvez remplacer les virgules dans le nombre séparé par des virgules en utilisant le suffixe .replace(',', '.') en '{:,}'.format(x).replace(',','.') pour tout nombre entier x .

>>> '{:,}'.format(1000000).replace(',','.')
'1.000.000'

Une approche similaire peut être effectuée avec les f-strings :

>>> f'{1000000:,}'.replace(',','.')
'1.000.000'

Méthode 4 :format()

Une autre façon d'ajouter des virgules comme séparateurs de milliers consiste à utiliser le ',d' syntaxe de formatage dans le format() fonction.

>>> format(1000000, ',d')
'1,000,000'

Source :https://stackoverflow.com/questions/1823058/how-to-print-number-with-commas-as-thousands-separators


Post précédent
Prochain article