Возможна подобная Фортрану печать в Python?

действительно ли это возможно некоторый способ "распечатать" в Python в Фортране как путь как это?

1     4.5656
2    24.0900
3   698.2300
4    -3.5000

Так десятичные точки всегда находится в том же столбце, и мы всегда добираемся 3 или n десятичные числа?

Спасибо

5
задан Open the way 25 February 2010 в 16:53
поделиться

4 ответа

>>> '%11.4f' % -3.5
'    -3.5000'

или новый стиль форматирования:

>>> '{:11.4f}'.format(-3.5)
'    -3.5000'

подробнее о спецификаторах формата в документации

9
ответ дан 18 December 2019 в 13:13
поделиться
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
0
ответ дан 18 December 2019 в 13:13
поделиться
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]))
0
ответ дан 18 December 2019 в 13:13
поделиться

Вы можете использовать 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
0
ответ дан 18 December 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: