12
votes

Le formatage du texte à justifier dans Python 3.3 avec la méthode .format ()

Je suis nouveau à Python et en essayant de travailler sur certains scripts d'échantillons. Je fais une chose simple un type de trésorerie, mais je veux justifier ou aligner la sortie de manière à ce que cela ressemble à ceci:

The subtotal was:   $24.95
The tax was:         $1.81
The total was:      $26.76
The customer paid:  $30.00
Change due:          $3.24


2 commentaires

Si total = sous-total + taxe ?


Oui, désolé pour cette faute de frappe. Je l'ai corrigé.


5 Réponses :


4
votes

Si vous connaissez la taille maximale du texte et des numéros, vous pouvez faire xxx

il devient plus difficile si ceux-ci ne sont pas connus à l'avance. Voici une approche, en supposant que noms et sont des listes: xxx


0 commentaires

10
votes

Le montant peut être formé comme ceci:

s = "The subtotal was:"
a = 24.95
print("{:20s}{:>7s}".format(s, "${.2f}".format(a))


0 commentaires

4
votes
maxLen = max(len(t) for t in text)  
for t,v in zip(text, value):
    print str("{0:<" + str(maxLen) + "} ${1:.2f}").format(t, v)

0 commentaires

2
votes

1
votes
subTotal = 24.95
tax = subTotal * 0.0725
total = subTotal + tax
paid = 30
change = paid-total
print("The subtotal was: %8s" % ("$%.2f" % subTotal))
print("The tax was:      %8s" % ("$%.2f" % tax))
print("The total was:    %8s" % ("$%.2f" % total))
print("The customer paid:%8s" % ("$%.2f" % paid))
print("Change due:       %8s" % ("$%.2f" % change))

0 commentaires