为什么我在vim中粘贴这个,我得到语法错误?

时间:2011-03-08 05:29:15

标签: python

def latlong_distance(origin, destination):
    lat1, lon1 = origin
    lat2, lon2 = destination
    radius = 6371
    dlat = math.radians(lat2-lat1)
    dlon = math.radians(lon2-lon1)    a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * math.sin(dlon/2) * math.sin(dlon/2)
    c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
    d = radius * c
    return d * 1000

SyntaxError:第65行的文件/tools.py中的非ASCII字符'\ xc2',但未声明编码;有关详细信息,请参阅http://www.python.org/peps/pep-0263.html

2 个答案:

答案 0 :(得分:7)

这可能是一个间距问题(\ xc2是一个空格字符),try和reindent只使用空格,没有别的。您也可以将# -*- coding:utf-8 -*-放在文件的顶部,看看是否有帮助。

答案 1 :(得分:1)

我稍微修改了一下代码:

dlon = math.radians(lon2-lon1)    a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * math.sin(dlon/2) * math.sin(dlon/2)

应分成两行:

dlon = math.radians(lon2-lon1)
a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * math.sin(dlon/2) * math.sin(dlon/2)

我试过了,并没有引发异常。你能把这个文件附在这里吗?