“Красивые” цены # Nice price formatting # nice_price
Классика жанра - отформатировать вывод цены: “1000” вывести как “1 000”. Наверное, после ещё пары-тройки лет программирования на питоне у меня получится написать это покороче :))
Пока же - вот:
def nice_price(price, delimiter=','):
"""
Красиво отформатировать цену - через каждые 3 знака
ставится разделитель, копейки не учитываются.
Примеры
-------
>>> print nice_price(1000)
1,000
>>> print nice_price(10500)
10,500
>>> print nice_price(123000, ' ')
123 000
"""
try:
price = int(price)
except TypeError:
price = 0
nice = ''
while price >= 1000:
nice = delimiter + '%.3d%s' % (price % 1000, nice)
price = price / 1000
if nice:
nice = '%s%s' % (price, nice)
else:
nice = '%s' % price
return nice