繁体   English   中英

如何格式化此Python程序的输出?

[英]How do I format the output of this Python program?

我试图弄清楚如何使这些值集从左到右排列(请参见下文)。 我该怎么办?

def main():
    for temp in range(-20, 70, 10):
        for windspeed in range(5, 55, 5):
            print int(35.74 + (0.6215*(temp)) - (35.75* windspeed**0.16) + (0.4275*(temp)) * (windspeed**0.16)),
        print
main()

现在输出是垂直的

-34
-40
-45
-48
-50
-53
-54
-56
-58
-59

-22
-28
-32
-35
-37
-39
-41
-42
-44
-45

我想要这样:

-34 -22
-40 -28
-45 -32
-48 -35
-50 -37
-53 -39
-54 -41
-56 -42
-58 -44
-59 -45

我认为您想转置输出,您可以通过反转循环顺序来完成。 作为特别的奖励,我对输出进行了格式设置,以使其出现在漂亮的整洁列中!

for windspeed in range(5, 55, 5):
    for temp in range(-20, 70, 10):
        print "%3d" % int(35.74 + (0.6215*(temp)) - (35.75* windspeed**0.16) + (0.4275*(temp)) * (windspeed**0.16)),
    print

输出:

-34 -22 -10   1  12  24  36  48  59
-40 -28 -15  -3   8  21  33  46  58
-45 -32 -19  -6   6  19  31  44  57
-48 -35 -21  -8   4  17  30  43  56
-50 -37 -24 -10   2  16  29  42  56
-53 -39 -25 -12   1  14  28  42  55
-54 -41 -27 -13   0  13  27  41  55
-56 -42 -28 -14   0  13  26  40  54
-58 -44 -29 -15  -1  12  26  40  54
-59 -45 -31 -16  -2  11  25  39  54

我在某种程度上猜测这是您想要的,因为您声明的问题所在程序的输出不是该程序实际输出的。 希望我理解正确。

def main():
   output = ""
   for temp in range(-20, 70, 10):
      for windspeed in range(5, 55, 5):
         output = output + str(int(35.74 + (0.6215*(temp)) - (35.75* windspeed**0.16) + (0.4275*(temp)) * (windspeed**0.16)))
   print output

main()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM