集智社区
资源加载中,请稍后...
集智社区

集智社区

Sic Parvis Magna

求助(未解决)

负基础入门Python(8)Quiz 16: 经纬度转换的问题

发表至课程讨论

def convert_to_dms(dd_lat, dd_lon):

dd_lat = float(dd_lat)
dd_lon = float(dd_lon)

if int(dd_lat) >= 0:
    dir_lat = "N"
else:
    dir_lat = "S"
    dd_lat = -dd_lat

if int(dd_lon) >= 0:
    dir_lon = "E"
else:
    dir_lon = "W"
    dd_lon = -dd_lon

def convert60(x):
    return 60 * (float(x) - int(x))

ddd_lat = '%03d' % int(dd_lat)
mm_lat = '%02d' % int(convert60(dd_lat))
ss_lat = ('%.3f' % convert60(convert60(dd_lat))).zfill(6)

dms_lat = ddd_lat + "*" + mm_lat + "'" + ss_lat + '"' + dir_lat


ddd_lon = '%03d' % int(dd_lon)
mm_lon = '%02d' % int(60 * (dd_lon - int(dd_lon)))
ss_lon = ('%.3f' % (60 * (60 * (dd_lon - int(dd_lon)) - int(mm_lon)))).zfill(6)

dms_lon = ddd_lon + "*" + mm_lon + "'" + ss_lon + '"' + dir_lon

return dms_lat, dms_lon

print(convert_to_dms('35.03299485527936', '33.233755230903625')) ``` 结果为('03501\'58.781"N', '03314\'01.519"E'); 但在代码中定义的输出格式为('03501'58.781"N', '03314'01.519"E'); 为什么结果的输出格式会多了一个" \ "

回复
0
#1

我觉得是因为python程序自己要将字符串首尾的分号和字符串中的分号区别开,就像C盘的Windows目录需要表示成"C:\Windows"一样

最新回复:收起讨论