Sto scrivendo alcuni rapporti e vorrei sapere se esiste un modo più semplice per ottenere il seguente comportamento.Formato stringa di annidamento
>>> '{:-^60}'.format('Percentage used: {:.2%}'.format(.4))
'------------------Percentage used: 40.00%-------------------'
Come si può vedere sto centrando il testo e quindi stampando un numero formattato in percentuale. Ma sto usando una funzione di formattazione all'interno di un'altra. Se possibile mi piacerebbe fare lo stesso in una singola funzione, il tipo di seguito.
'$SOMETHING GOES HERE'.format(header = 'Percentage Used:',percentage = .4)
Naturalmente sto cercando una soluzione generale, che avrebbe funzionato con tutti, o la maggior parte, delle opzioni di formattazione, non solo per l'allineamento
Grazie.
Sembra che il problema è intrinsecamente annidato. Immagina di voler formattare una coppia di due numeri, dando ognuno almeno 3 caratteri e facendo in modo che l'intera coppia ne prenda almeno 10. Non riesco a vedere come lo scrivi diversamente da qualcosa di simile a '' {: 10} ' .format ('({: 3}, {: 3})'. format (1,2)) '. È la stessa cosa qui. È l'intera stringa che devi centrare, non un elemento particolare, quindi devi formattare la stringa formattata. @wim ha ragione che 'center' è probabilmente più leggibile, ma è effettivamente equivalente. – abarnert
Grazie, per lo più sto cercando alcune idee. Non vedo come potresti farlo, ma forse altre funzioni o qualcosa potrebbero fare il trik. Come quello di @wim. Tuttavia, penso che ciò che mi piacerebbe fare sia limitato dalla funzione di formattazione stessa. – Darkade
Se stai cercando qualcosa di più potente e flessibile (ma complesso) del 'formato' incorporato, per alcuni anni è stato discusso il' formato', le persone hanno suggerito tutti i tipi di alternative e le librerie codificate quello ha implementato la maggior parte di loro. Prova a cercare PyPI, e forse la collezione di ricette di ActiveState (perché questo stava accadendo mentre PyPI era ancora in sviluppo) e forse troverai qualcosa che fa ciò di cui hai bisogno. (Non ho raccomandazioni specifiche.) – abarnert