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

时间:2011-02-12 19:58:58

标签: python

我试图弄清楚如何让这些值从左到右排列(见下文)。 我怎么能这样做?

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

2 个答案:

答案 0 :(得分:1)

我认为您想通过颠倒循环的顺序来转置您可以做的输出。作为一个特殊的奖励,我已经格式化了输出,使它出现在漂亮整齐的列中!

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

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

答案 1 :(得分:0)

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()
相关问题