Étant donné :
a = 1
b = 10
c = 100
Je veux afficher un zéro de tête pour tous les nombres de moins de 2 chiffres, c'est-à-dire.. :
01
10
100
Étant donné :
a = 1
b = 10
c = 100
Je veux afficher un zéro de tête pour tous les nombres de moins de 2 chiffres, c'est-à-dire.. :
01
10
100
x = "%02d.txt" % i
soulève une TypeError (impossible de concaténer les objets 'str' et 'int'), mais x = "%02d.txt" % (i,)
ne le fait pas. Intéressant. Je me demande où cela est documenté
@theta En 2.7.6, je n'obtiens pas d'erreur. Peut-être s'agissait-il d'un bogue dans une version spécifique de Python qui a été corrigé depuis ?
J'aime cette solution, car elle est utile non seulement pour sortir le nombre, mais aussi pour l'affecter à une variable... par exemple, x = str(datetime.date.today().month).zfill(2) renverra x comme '02' pour le mois de février.
Ce devrait être la bonne réponse, puisque le "{1:02d}"
ne peuvent pas avoir de variables à la place de 2
(comme si vous créez une fonction dynamique).
@JoshuaVarghese Il peut avoir des variables : "{0:0{1}}"
. Passez le nombre de zéros que vous voulez comme deuxième argument.
En Python 3, vous utiliseriez la méthode de chaîne format() :
for i in (1, 10, 100):
print('{num:02d}'.format(num=i))
ou en utilisant l'intégré (pour un seul numéro) :
print(format(i, '02d'))
Voir le PEP-3101 la documentation relative aux nouvelles fonctions de formatage.
Fonctionne également dans Python 2.7.5. Vous pouvez également utiliser '{:02d}'.format(1) si vous ne souhaitez pas utiliser d'arguments nommés.
Cela fonctionne bien en 2.7.2, avec une virgule flottante "{0:04.0f}".format(1.1) donne 0001 (:04 = au moins 4 caractères, dans ce cas des 0 de tête, .0f = virgule flottante sans décimales). Je suis conscient du formatage en %, mais je voulais modifier une instruction .format existante sans réécrire l'instruction ensemble du site chose. Merci.
x = [1, 10, 100]
for i in x:
print '%02d' % i
les résultats :
01
10
100
Lire plus d'informations sur le formatage des chaînes de caractères à l'aide de %. dans la documentation.
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.