我试图创建一个通过不同的风速值,以便计算表看起来像这样循环表:Ideal Run。然而,一旦我运行follwing代码:
import math
y=' '
print("Big Blue Wind Chill")
print(y)
airTemp=float(input("Enter air temperature (F): "))
startWS=eval(input("Enter starting wind speed (mph): "))
print(y)
print("Temperature = " + str(airTemp) + " degrees F")
print(y)
entries = x = [[] for i in range(91-startWS)]
def Main():
i=startWS
for i in range(startWS,91):
entries[i-startWS].append(i)
i=i+1
Main()
def oldForumula():
i=startWS
for i in range(startWS,91):
old=round(0.081*(3.71*math.sqrt(i)+5.81-0.25*i)*(airTemp-91.4)+91.4)
entries[i-startWS].append(old)
i=i+1
oldForumula()
def newForumula():
i=startWS
for i in range(startWS,91):
new=round(35.74+0.6215*airTemp-35.75*(i**0.16)+0.4275*airTemp*(i**0.16))
#print(new)
entries[i-startWS].append(new)
i=i+1
newForumula()
def difference():
i=startWS
for i in range(startWS,91):
diff=round((0.081*(3.71*math.sqrt(i)+5.81-0.25*i)*(airTemp-91.4)+91.4)-(35.74+0.6215*airTemp-35.75*(i**0.16)+0.4275*airTemp*(i**0.16)),1)
#print(diff)
entries[i-startWS].append(diff)
i=i+1
difference()
print('Wind Speed', 'Old Formula', 'New Formula', 'Difference', sep='\t')
print(y)
for i in range(len(entries)):
for j in range(4):
print(entries[i][j], end='\t\t')
print()
我结束了所创建的表,但在列和实际的数字值的名称的对准是完全关闭。下面是它看起来像有一次我运行下面的代码:Actual run。如果你能帮助我解决了校准,我会非常赞赏。
您可以使用theFormat Specification Mini-Language使用字符串格式化。
例如:
for i in range(len(entries)):
print("{0:>6.2f}\t{1:>6.2f}\t{2:>6.2f}\t{3:>6.2f}".format(*entries[i]))
你得到类似的东西:
Wind Speed Old Formula New Formula Difference
5.00 9.00 4.00 5.10
6.00 5.00 2.00 2.80
7.00 2.00 1.00 0.80
8.00 -1.00 0.00 -1.10
9.00 -3.00 0.00 -2.80
10.00 -5.00 -1.00 -4.30
11.00 -7.00 -2.00 -5.70
或者,使用更Python循环:
for entry in entries:
print("{0:>6.2f}\t{1:>6.2f}\t{2:>6.2f}\t{3:>6.2f}".format(*entry))
你可以使用带有空格的只是垫str.format()。
def draw_padded_string(s, width, align="left"):
if align == "left":
return "{s: <{width}}".format(s=s, width=width)
elif align == "center":
return s.center(width, ' ')
elif align == "right":
return "{s: >{width}}".format(s=s, width=width)
在这种情况下,s是字符串,宽度是你列的整个宽度。
你会定义这个地方在你的代码,很可能在你的进口只是为了得到它自己的方式,但只要它是指你开始调用打印语句之前。这会改变你的打印阻止了一点,太:
width = 13
headers = ["Wind Speed", "Old Formula", "New Formula", "Difference"]
print_headers = []
for header in headers:
print_headers.append(draw_padded_string(header, width))
print("".join(print_headers))
print()
for row in entries:
print_row = []
for data in row:
print_row.append(draw_padded_string(data, width))
print("".join(print_row))
我做了什么:
"".join(list)
打印列表i
和j
,而是让蟒蛇迭代在你的行和列你改变你可能会想要做的是不同的:
for item in list
column_length = max([len(word) for word in list_of_words])