更好地理解这个python代码

时间:2014-04-06 11:23:35

标签: python function

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。

由于

2 个答案:

答案 0 :(得分:1)

每个纬度都大约相距69 miles(111公里)。因此,lat1是公交的纬度,第二个lat2是Daves纬度。通过在monitor中请求此网址,您获得了公交车的纬度,然后使用distance功能获得了以英里为单位的距离。

答案 1 :(得分:0)

abs()是数字的绝对值。

^ python 3的小链接在python 2中的工作方式相同。

如果您正在查找absolute value< - 那个链接的含义,则会显示一个视频。