web-dev-qa-db-fra.com

Comment compléter une chaîne avec des zéros au début Python 3

J'essaie de faire length = 001 in Python 3 mais chaque fois que je tente de l’imprimer, il tronque la valeur sans les zéros au début (length = 1). Comment pourrais-je arrêter cela sans avoir à transtyper length en chaîne avant de l'imprimer?

43
Gabby Freeland

Utilisez la méthode d'aide zfill() pour saisir à gauche toute chaîne, entier ou float avec des zéros.

Exemple d'utilisation:

print str(1).zfill(3);
# Expected output: 001

Description:

Appliquée à une valeur, zfill() renvoie une valeur complétée à gauche par des zéros lorsque la longueur de la valeur initiale de la chaîne est inférieure à celle de la valeur appliquée width , sinon, la valeur initiale string telle quelle .

Syntaxe:

str(string).zfill(width)
# Where string represents a string, an integer or a float, and
# width, the desired length to left-pad.
69
nyedidikeke

Depuis python 3.6, vous pouvez utiliser fstring:

>>> length = 1
>>> print(f'length = {length:03}')
length = 001
25
PhE

Les entiers Python n'ont pas de longueur inhérente ni de nombre de chiffres significatifs. Si vous voulez qu'ils impriment d'une manière spécifique, vous devez les convertir en chaîne. Vous pouvez procéder de différentes manières pour spécifier des éléments tels que les caractères de remplissage et les longueurs minimales.

Pour ajouter un minimum de trois caractères avec des zéros, essayez:

length = 1
print(format(length, '03'))
9
Blckknght

Il y a plusieurs façons d'y parvenir, mais le moyen le plus simple de Python 3.6+, à mon avis, est ceci:

print(f"{1:03}")
2
Anatol

Je suggère cette méthode laide, mais cela fonctionne length=1 lenghtafterpadding=3 newlength='0'*(lengthafterpading-len(str(length))+str(length)

Je suis venu ici pour trouver une solution plus légère que celle-ci!

0
wydadman