2096 votes

La meilleure façon de remplacer les zéros par des chaînes de caractères.

Quelle est la meilleure/la plus courte façon de compléter une chaîne de caractères avec des zéros à gauche, afin que la chaîne ait une longueur spécifique ?

3296voto

Harley Holcombe Points 34618

Cordes :

>>> n = '4'
>>> print n.zfill(3)
>>> '004'

Et pour les chiffres :

>>> n = 4
>>> print '%03d' % n
>>> 004
>>> print "{0:03d}".format(4)  # python >= 2.6
>>> 004
>>> print("{0:03d}".format(4))  # python 3
>>> 004

Documentation sur le formatage des chaînes de caractères .

474voto

Paul D. Eden Points 4842

Il suffit d'utiliser le rjust de l'objet chaîne.

Cet exemple produira une chaîne de 10 caractères, en la remplaçant si nécessaire.

>>> t = 'test'
>>> t.rjust(10, '0')
>>> '000000test'

212voto

Konrad Rudolph Points 231505

Pour les chiffres :

print "%05d" % number

Voir aussi : Python : Formatage des chaînes de caractères .

EDIT : Il est intéressant de noter qu'à partir de hier Le 3 décembre 2008, cette méthode de formatage est dépréciée en faveur de l'option format méthode de la chaîne :

print("{0:05d}".format(number)) # or
print(format(number, "05d"))

Voir PEP 3101 pour les détails.

73voto

Victor Barrantes Points 173
>>> '99'.zfill(5)
'00099'
>>> '99'.rjust(5,'0')
'00099'

si vous voulez le contraire :

>>> '99'.ljust(5,'0')
'99000'

45voto

Johnsyweb Points 45395

str(n).zfill(width) fonctionnera avec string s, int s, float s... et est Python 2. x et 3. x compatible :

>>> n = 3
>>> str(n).zfill(5)
'00003'
>>> n = '3'
>>> str(n).zfill(5)
'00003'
>>> n = '3.0'
>>> str(n).zfill(5)
'003.0'

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