如何格式化此Python程序的输出?
问题描述:
我想弄清楚如何让这些值集合从左到右排列(见下文)。 我怎么能这样做?如何格式化此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
答
我觉得要转你的输出,你可以通过反向做循环的顺序。作为一项特殊奖励,我对输出进行了格式化,以便它出现在漂亮整洁的柱子中!
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()
我知道,它没有在这里格式化,就像它应该有...我会尝试重新发布输出。 – user614496 2011-02-12 20:02:50
@user就像提示一样,输出技巧就是将其格式化,就好像它是代码一样,然后逐字输出。 – 2011-02-12 20:17:36