действительно ли это возможно некоторый способ "распечатать" в Python в Фортране как путь как это?
1 4.5656
2 24.0900
3 698.2300
4 -3.5000
Так десятичные точки всегда находится в том же столбце, и мы всегда добираемся 3 или n десятичные числа?
Спасибо
>>> '%11.4f' % -3.5
' -3.5000'
или новый стиль форматирования:
>>> '{:11.4f}'.format(-3.5)
' -3.5000'
подробнее о спецификаторах формата в документации
for i in [(3, 4.534), (3, 15.234325), (10,341.11)]:
... print "%5i %8.4f" % i
...
3 4.5340
3 15.2343
10 341.1100
print "%10.3f" % f
выровняет по правому краю номер f
(как в стороне: %-10.3f
был бы выровнен по левому краю). Последовательность будет выровнена по правому краю к 10 символам (она больше не работает с> 10 символов), и точно 3 десятичных цифры. Так:
f = 698.230 # <-- 7 characters when printed with %10.3f
print "%10.3f" % f # <-- will print " 698.2300" (two spaces)
Как тест для вашего набора в качестве примера делают следующее:
print "\n".join(map(lambda f: "%10.3f" % f, [4.5656, 24.09, 698.23, -3.5]))
Вы можете использовать string.rjust(), вот так:
a = 4.5656
b = 24.0900
c = 698.2300
d = -3.5000
a = "%.4f" % a
b = "%.4f" % b
c = "%.4f" % c
d = "%.4f" % d
l = max(len(a), len(b), len(c), len(d))
for i in [a, b, c, d]:
print i.rjust(l+2)
Что дает:
~ $ python test.py
4.5656
24.0900
698.2300
-3.5000