Ответ 1
Первое число - это общее количество цифр, включая десятичную точку.
>>> '%07.3f' % 5
'005.000'
Важное примечание: В число включаются как десятичные точки (.), так и знаки минус (-).
Я пытаюсь представить число с ведущими и конечными нулями, так что общая ширина равна 7, включая десятичную точку. Например, я хочу представить "5" как "005.000". Кажется, что форматирование строк позволит мне делать то или другое, но не то, и другое. Здесь вывод, который я получил в Ipython, иллюстрирующий мою проблему:
In [1]: '%.3f'%5
Out[1]: '5.000'
In [2]: '%03.f'%5
Out[2]: '005'
In [3]: '%03.3f'%5
Out[3]: '5.000'
Линии 1 и 2 делают именно то, что я ожидаю. Строка 3 просто игнорирует тот факт, что мне нужны ведущие нули. Есть идеи? Спасибо!
Первое число - это общее количество цифр, включая десятичную точку.
>>> '%07.3f' % 5
'005.000'
Важное примечание: В число включаются как десятичные точки (.), так и знаки минус (-).
[Edit: Gah, снова избили]
'%07.3F'%5
Первое число - это полная ширина поля.
Это заняло у меня секунду, чтобы понять, как сделать @nosklo способом, но с .format()
и вложенностью.
Поскольку я не могу найти пример где-либо еще, я делюсь здесь.
"{}".format(a)
>>> a = 5
>>> print "{}".format('%07.3F' % a)
005.000
>>> print("{}".format('%07.3F' % a))
005.000
Более python3
, создан из документов, но оба работают так, как задумано.
Обратите внимание на %
против :
, а формат размещения в python3 отличается.
>>> a = 5
>>> print("{:07.3F}".format(a))
005.000
>>> a = 5
>>> print("Your Number is formatted: {:07.3F}".format(a))
Your Number is formatted: 005.000
"{}".format(a)
вложенногоЗатем расширив это, чтобы соответствовать моему коду, который был вложен в .format()
:
print("{}: TimeElapsed: {} Seconds, Clicks: {} x {} "
"= {} clicks.".format(_now(),
"{:07.3F}".format((end -
start).total_seconds()),
clicks, _ + 1, ((_ + 1) * clicks),
)
)
Который форматирует все так, как я хотел.
20180912_234006: TimeElapsed: 002.475 Seconds, Clicks: 25 + 50 = 75 clicks.
@babbitt: первое число - общая ширина поля.
@meawoppl: Это также считается минус!...