2015-08-09 140 views
1

有人可以帮我用这段代码吗?目前它显示错误:Python的飞行距离和时间计算器

ValueError: Invalid conversion specification

我不确定如何解决它。另外,你能告诉我如何正确地格式化这段代码,使它看起来更整齐一些,以及我是否做了其他错误的事情或是否会出现其他错误?

出于测试目的,如果你愿意,你可以使用两套经度和纬度:

Latitude: 17.935667 
Longitude: -76.7875 

Latitude: -34.945 
Longitude: 138.530556 

这里是我的代码:

import math 

radius = 6371.01 

city1 = raw_input("First city: ") 
x1 = float(input("First latitude: ")) 
y1 = float(input("First longitude: ")) 
city2 = raw_input("Second City: ") 
x2 = float(input("Second latitude: ")) 
y2 = float(input("Second longitude: ")) 

def distance(radius, x1, x2, y1, y2): 

    d = radius * math.acos(math.sin(x1)*math.sin(x2)+math.cos(x1)*math.cos(x2)*math.cos(abs(y1-y2))) 
    return d 

distance = distance(radius, x1, x2, y1, y2) 

Blackbird = 3230 
BombardierCRJ1000 = 870 

tbird = distance/3230 
tBombardierCRJ1000 = distance/870 

cseconds = tBombardierCRJ1000 * 60 * 60 * 60 
hctime = cseconds/3600 
cseconds -= 3600*hctime 
mctime = cseconds/60 

hseconds = tbird * 60 * 60 * 60 
hhtime = hseconds/3600 
hseconds -= 3600*hhtime 
mhtime = hseconds/60 

print("Commercial aircraft: Bombardier CRJ 1000 - 870 km/hr") 
print("High-Speed aircraft: SR-71 Blackbird - 1354 km/hr") 

print("Departure") 
print("City   Latitude Longitude") 
print("{0:s}   {1:.5f} - {2:.5f)}" .format(city1, x1, y1))  
print("--------------------------------------------------------------- -------") 
print("Destination") 
print("City   Latitude Longitude Distance Commercial  High-Speed") 
print("          (km)  Time (h:m)  Time (h:m)") 
print("{0:s}  {1:.5f}  {2:.5f}  {3:.2f}  {4:d}:{5:d}  {6:d}:{7:d}" .format(city2, x2,y2, distance, hctime,mctime, hhtime, mhtime)) 
+1

你应该避免命名您的浮动'distance'因为它比用于计算它的功能是相同的。如果您想要修改您的脚本以便能够计算多个值,它可能会派上用场。 –

回答

2

有格式中出现语法错误。你应该从{2:.5f)}删除)

print("{0:s}   {1:.5f} - {2:.5f}".format(city1, x1, y1)), 
+0

太好了,我完全错过了。我还通过将int()添加到时间计算中来修复以下浮点错误。谢谢! – rabbit

+0

点击了!对不起,这个哈哈还是新手 – rabbit