Несколько вариантов форматирования в Python

В Python, как я могу сделать несколько форматов одновременно:

Поэтому я хочу сделать число без десятичных знаков и иметь разделитель тысяч:

num = 80000,00

Я хочу, чтобы это было 80 000

Я знаю, что могу делать эти две вещи, но как бы я их совмещал:

"{:,}".format(num) # this will give me the thousands separator "{0:.0f}".format(num) # this will give me only two decimal places 

Так можно объединить их вместе?

Вы можете комбинировать две строки формата. Заглавная запятая идет сначала после двоеточия:

 >>> "{:,.0f}".format(80000.0) '80,000' 

Обратите внимание, что вы можете также использовать функцию free format() вместо метода str.format() при форматировании только одного значения:

 >>> format(80000.0, ",.0f") '80,000' 

Редактировать . В Python 2.7 был введен разделитель тысяч, поэтому приведенные выше преобразования не работают в Python 2.6. В этой версии вам нужно будет свернуть собственное форматирование строк. Некоторый код ad-hoc:

 def format_with_commas(x): s = format(x, ".0f") j = len(s) % 3 if j: groups = [s[:j]] else: groups = [] groups.extend(s[i:i + 3] for i in range(j, len(s), 3)) return ",".join(groups)