在python中是否可以像fortran那样打印?
有没有可能像这样用fortran语言在python中“打印”出来在python中是否可以像fortran那样打印?,python,fortran,Python,Fortran,有没有可能像这样用fortran语言在python中“打印”出来 1 4.5656 2 24.0900 3 698.2300 4 -3.5000 所以小数点总是在同一列中,我们总是得到3或n个十进制数 谢谢 或新样式格式: >>> '{:11.4f}'.format(-3.5) ' -3.5000' 更多关于 将右对齐编号f(作为旁白:%-10.3f将左对齐)。该字符串将右对齐到10个字符(如果大于10个字符,它将不再工作)和3个十进制数字。因
1 4.5656
2 24.0900
3 698.2300
4 -3.5000
所以小数点总是在同一列中,我们总是得到3或n个十进制数
谢谢
或新样式格式:
>>> '{:11.4f}'.format(-3.5)
' -3.5000'
更多关于
将右对齐编号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)
可以通过以下方式使用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
如果您想完全重新创建FORTRAN文本IO,还可以查看PyPI上的
fortranformat
库或
如果您有任何问题,请给我发一封电子邮件(我写的)。Fortran io在各个方面都与C风格io完全不同 找Brendan的fortranformat软件包
这使得创建晦涩难懂的旧fortran输入文件比尝试使用C样式的字符串格式少了很多尝试和错误。您好,谢谢!最后一件事,假设我有三个浮点数f1,f2,f3,如何打印它们?我尝试了“%11.4f”%f1、f2、f3,但是nothing@werner:使用
“%11.4f%11.4f%11.4f%”(f1、f2、f3)
和最后一个问题,如果我必须打印1000行,并且每个行上有三个浮点数,我如何为:10个空格,f1格式,5个空格,f2格式,5个空格,f3格式,其中fi格式为%11.4F由于不知道此答案的目的,我也不知道您在Fortran格式中发现了什么神秘之处。它与C格式非常相似。@VladimirF我对Fortran格式非常熟悉。我对C格式不太熟悉。我发现这个模块在传统程序要求输入格式为“一般”的情况下非常有用。使用此模块时,我能够(几乎)复制粘贴格式语句。C/F翻译一组语句,如4001格式(i4.4',:',e15.7)4002格式(i4.4',:',3x,a7,2i5',:',1a4)4003格式(i4.4',:',1a1)4004格式(i4.4',:',i5)4014格式(i4.4',:',2x,A5 4005格式(60i3)。如果这是对我的评论的反应,你可能没有理解。为什么神秘?为什么这个答案会存在?@VladimirF为什么是“奥术”?对于一个知道Fortran io是一项不可转移的技能的人来说,为什么有人必须为一项孤立的任务学习它?作为一个实验,试着把我评论中的格式语句(以及另外30个类似的语句)交给一个对C和fortran风格io都不熟悉的人,并请他们翻译。然后告诉他们,他们可以简单地复制粘贴它们。@VladimirF关于答案存在的原因。当我前段时间搜索这个话题时,布伦丹的回答并没有让我吃惊。我想我会努力强调这个图书馆的有用性,以帮助其他人。作为一个全新的用户,我没有代表对他的答案进行投票或评论。
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]))
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
easy_install fortranformat