Parce que ça m'a fait réfléchir un peu.
C'est une méthode bien introduite et je pense que c'est une grammaire de base.
'{0:05d}'.format(12) #=> '00012'
Cela n'a rien à voir avec un remplissage nul, mais cela ressemble à ce qui suit pour remplir d'espace.
'{0:5d}'.format(12) #=> ' 12'
En Python, les variables ne peuvent pas être utilisées dans des champs tels que {0: 05d}
, donc cette notation ne vous permet pas de "spécifier dynamiquement le nombre de chiffres pour obtenir une chaîne".
Par conséquent, il peut être réalisé par la méthode suivante.
python
# -*- coding: utf-8 -*-
max = 10000 #<=En supposant que ce sera dynamique
#Obtenez le chiffre maximum
max_len = len(str(max))
#Valeur numérique cible (appropriée cette fois)
test = 123
###Zéro remplissage avec un maximum de chiffres pour le numéro cible###
# `zfill`Lors de l'utilisation
output = str(test).zfill(max_len)
print(output) #=> '00123'
#Lors de l'utilisation de rjust
output = str(test).rjust(max_len,'0')
print(output) #=> '00123'
En utilisant zfill
, les variables peuvent être utilisées pour le nombre de chiffres spécifié par l'argument.
De plus, si vous utilisez «rjust», vous pouvez le remplir avec un caractère autre que zéro en spécifiant un caractère autre que «0» dans le deuxième argument.
(J'ai appris à utiliser rjust
depuis @matobaa san. Merci @matobaa san!)
Recommended Posts