9
Jak używać zmiennych do formatowania zmiennych?Łańcuch formatu w python ze zmiennym formatowaniem
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
lub
(...):
print "{:"+str(column_width)+"}: {}".format(item, qty)
> ValueError: Single '}' encountered in format string
Co mogę zrobić, choć jest najpierw skonstruować ciąg formatowania, a następnie sformatować go:
(...):
formatter = "{:"+str(column_width)+"}: {}"
print formatter.format(item, qty)
> lube : 1
> towel : 4
> pinapple: 1
Wygląda niezgrabny, jednak. Czy nie ma lepszego sposobu radzenia sobie z taką sytuacją?
Tak, jest to jeden z powodów, że '.format()' jest preferowane do '%' łańcuchy formatu –
@gnibbler: '% *' działa dobrze – georg
Afaik '%' jest uważane za przestarzałe i zostanie usunięte w przyszłych wersjach Pythona 3, chociaż nie podano jeszcze faktycznego terminu. –