import urllib
from xml.etree.ElementTree import parse
candidates = ['4198', '4168']
daves_latitude = 41.98062
def distance(lat1, lat2):
'Return distance in miles between two lats'
return 69*abs(lat1 - lat2)
def monitor():
u = urllib.urlopen('http://ctabustracker.com/bustime/map/getBusesForRoute.jsp?route=22')
doc = parse(u)
for bus in doc.findall('bus'):
busid = bus.findtext('id')
if busid in candidates:
lat = float(bus.findtext('lat'))
dis = distance(lat, daves_latitude)
print busid, dis, 'miles'
print '-'*10
import time
while True:
monitor()
time.sleep(60)
我根据现实生活中的问题做了这个练习。 Dave在公共汽车上忘记了他的情况,他想知道其中一辆糖果公共汽车正在运送丢失的箱子。我理解代码,但我无法找到第一个函数和第二个函数之间的关系,如
def distance(lat1, lat2):
'Return distance in miles between two lats'
return 69*abs(lat1 - lat2)
我理解monitor()的作用但不是distance()和monitor()之间的关系以及它们如何交互以显示结果,请你赐教?我是n00b。
由于
答案 0 :(得分:1)
每个纬度都大约相距69 miles(111公里)。因此,lat1
是公交的纬度,第二个lat2
是Daves纬度。通过在monitor
中请求此网址,您获得了公交车的纬度,然后使用distance
功能获得了以英里为单位的距离。
答案 1 :(得分:0)