2012-07-15 12 views
8

Sono un po 'un newb alla programmazione con python quindi per favore andate piano con me. Sto provando a chiamare l'attributo string rjust e anche a specificare la precisione per un punto mobile. Ecco il codice e il campione di uscita (si noti il ​​0.00 non è giustificato a destra):Stampare un galleggiante con precisione giustificato a destra

print '%s: %s %s \tchange: %.2f' % (Instance1.symbol.ljust(5), 
    Instance1.name.ljust(50), Instance1.buyprices.rjust(10), Instance1.val) 

USCITA:

AXP : American Express Company       55.38 change: -1.15 
AXR : Amrep Corp.          6.540 change: 0.00 
+0

Grazie Levon !!! – siesta

risposta

16

Questa mostra un esempio di come formattare la vostra uscita con due punti decimali utilizzando il anziani metodo % formattazione:

v1 = 55.39 
v2 = -1.15 
v3 = 6.54 
v4 = 0.00 

print '%8.2f %8.2f' % (v1, v2) 
print '%8.2f %8.2f' % (v3, v4) 

l'uscita corrispondente:

55.39  -1.15 
    6.54  0.00 

In alternativa, è possibile utilizzare la funzione "nuova e migliorata" .format() che sarà disponibile per un po 'e vale la pena di essere informata. Quanto segue genererà la stessa uscita come sopra:

print '{:8.2f} {:8.2f}'.format(v1, v2) 
print '{:8.2f} {:8.2f}'.format(v3, v4) 

Entrambe le serie di direttive formattazione allocano 8 spazi per il numero, formato come un galleggiante con 2 cifre dopo il punto decimale. Dovresti regolare questi valori in base alle tue esigenze.

Usando questo approccio per formattare l'output sarà più facile penso da quando .format() vi darà un sacco di controllo sul uscita (incl. Giustificazione, il riempimento, la precisione).

0

Non importa, ho capito questo diritto dopo la pubblicazione la mia domanda, naturalmente ...

changed to this: 
    def change_value(self, sym, buy, sell): 
     self.sym = sym 
     temp = float(buy) - float(sell) 
     self.val = "%.2f" % temp 




and then called str(Instance1.val).rjust(10) 
Problemi correlati