9
Come posso utilizzare le variabili per formattare le variabili?Formato stringa in python con formattazione variabile
cart = {"pinapple": 1, "towel": 4, "lube": 1}
column_width = max(len(item) for item in items)
for item, qty in cart.items():
print "{:column_width}: {}".format(item, qty)
> ValueError: Invalid conversion specification
o
(...):
print "{:"+str(column_width)+"}: {}".format(item, qty)
> ValueError: Single '}' encountered in format string
Cosa posso fare, però, è prima di costruire la stringa di formattazione e quindi formattarlo:
(...):
formatter = "{:"+str(column_width)+"}: {}"
print formatter.format(item, qty)
> lube : 1
> towel : 4
> pinapple: 1
Sembra goffo, però. Non c'è un modo migliore per gestire questo tipo di situazione?
Sì, questo è uno dei motivi per cui '.format()' è preferito per '%' formattare le stringhe –
@gnibbler: '% *' funziona bene – georg
Afaik '%' è considerato deprecato e verrà rimosso nelle future versioni di Python 3, sebbene non sia stata ancora annunciata alcuna scadenza effettiva. –