0

“完整的纬度/经度转换函数人类喜欢用度、分和秒来表示纬度和经度。你可以在 Python 中使用这些单位,但是如果你转换为单一的,你的计算(以及因此,代码)会更清晰单位“度”,使用度的分数来表示弧分和弧秒。

您的首要任务是填写函数 convert_to_decimal() 的代码。参数是以度、弧分和弧秒为单位的纬度(或经度)。该函数应返回与十进制度数相同的纬度(或经度)(浮点类型的单个值)。如果您不确定如何计算转换,请阅读。”提供的链接:http ://www.quickiwiki.com/en/Arcminute

本质上:试图获得一个代码,该代码将返回与单个十进制度相同的纬度或经度。我知道我必须从给定的输入中转换值,只是试图找到最有效的方法来做到这一点

4

1 回答 1

2

让我们一点一点地分解它。

您的首要任务是填写函数 convert_to_decimal() 的代码。

你知道如何在 Python 中创建函数吗?我们使用def关键字来创建函数:

def convert_to_decimal():
    return 42

我省略了数学,稍后会出现。


参数是以度、弧分和弧秒为单位的纬度(或经度)。

函数参数在函数声明的括号内指定,如下所示:

def convert_to_decimal(degrees, argminutes, arcseconds):
    return 42

该函数应返回与十进制度数相同的纬度(或经度)(浮点类型的单个值)。

我们不要忘记记录我们的函数,所以 python 解释器的help()函数做了一些有用的事情:

def convert_to_decimal(degrees, arcminutes, arcseconds):
    '''
       Convert degrees, minutes, seconds into the 
       same latitude (or longitude) as a single in
       decimal degrees (a single value of type float)
    '''
    return 42.0

返回值应该是 type float,所以我改变了我们的占位符返回语句。


从 wiki中,一角分...等于一度的六十分之一 (1⁄60)。

而且,通过扩展,一角秒是 1 度的 1/3600。

def convert_to_decimal(degrees, arcminutes, arcseconds):
    '''
       Convert degrees, minutes, seconds into the 
       same latitude (or longitude) as a single in
       decimal degrees (a single value of type float)
    '''
    return float(degrees + arcminutes/60. + arcseconds/3600.)

请注意,我除以浮点常量,而不是整数常量,以确保使用浮点值完成数学运算。

于 2013-09-30T03:00:22.657 回答