我试图创建一个循环遍历各种风速值的表,以便计算一个如下所示的表:Ideal Run。但是,一旦我运行以下代码:
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。如果你能帮我修一下线路,我将不胜感激。你知道吗
可以使用Format Specification Mini-Language使用字符串格式。你知道吗
例如:
你会得到这样的结果:
或者,使用一个更像Python的循环:
你可以用空格填充str.format格式(). 你知道吗
在本例中,s是字符串,width是列的整个宽度。你知道吗
您可以在代码中的某个地方定义它,可能是在您的导入下,只是为了让它远离您的方式,但只要它是在您开始调用print语句之前定义的。这也会稍微改变您的打印块:
我所做的:
"".join(list)
将列表打印为一行i
和j
的整数跟踪改为让python在您的行和列上迭代您可能希望采取的不同做法:
for item in list
相关问题 更多 >
编程相关推荐