gpt4 book ai didi

python - 在 python 中操作返回值

转载 作者:行者123 更新时间:2023-12-01 02:06:38 26 4
gpt4 key购买 nike

我正在尝试使用以下代码将十进制度转换为度、分和秒:

def dd2dms(deg):
d = int(deg)
md = abs(deg - d) * 60
m = int(md)
sd = (md - m) * 60
return [d, m, sd]

full = 500/60
print(full)
print(dd2dms(full))

但我得到以下输出:

8.333333333333334 [8, 20, 0]

我想得到的输出为:

8.333333333333334 8:20:0

我怎样才能实现这个目标?我正在迈出学习 Python 的一小步。 :)

最佳答案

这是一个围绕您的角度构建的小类,它具有 dms 的转换函数以及格式良好的字符串表示形式:

class Angle(float):
def __init__(self, degrees):
self.degrees = degrees

def __repr__(self):
return "<Angle of {}° ({})>".format(self.degrees, self.dms)

@property
def dms(self):
deg = self.degrees
d = int(deg)
md = abs(deg - d) * 60
m = int(md)
sd = (md - m) * 60
return "{:g}:{:g}:{:g}".format(d, m, sd)

演示:

In[1]: a = Angle(90.173)
In[2]: print(a)
90.173
In[3]: print(a.dms)
90:10:22.8
In[4]: a
Out[4]: <Angle of 90.173° (90:10:22.8)>

由于它继承自float,您甚至可以用它进行计算。请注意,返回值将是一个普通的 float (不是 Angle),无需进一步调整该类。

关于python - 在 python 中操作返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48991037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com