Я не уверен, что это то, что вы ищете, так как это не полностью достигается с помощью строки формата, однако, вы можете просто использовать нарезку строк, чтобы обрезать концевые символы, когда вещи становятся слишком длинными:
num1 = 0.04154721841
num2 = 10.04154721841
num3 = 1002.04154721841
print "{0:<12.11g}".format(num1)[:12]
print "{0:<12.11g}".format(num2)[:12]
print "{0:<12.11g}".format(num3)[:12]
выводит:
0.0415472184
10.041547218
1002.0415472
Кроме того, я бы сказал, что вы должны просто написать функцию, хотя я не специалист по str.format
, поэтому я могу пропуститьчто-то.