Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中是否可以像fortran那样打印?_Python_Fortran - Fatal编程技术网

在python中是否可以像fortran那样打印?

在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个十进制数字。因

有没有可能像这样用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个十进制数字。因此:

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