Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以弗所日落日出_Python_Pyephem - Fatal编程技术网

Python 以弗所日落日出

Python 以弗所日落日出,python,pyephem,Python,Pyephem,我试图计算出给定日期和地点的准确日照时间。我一直在研究python模块“Ephem”的日出和集合计算。代码如下: import ephem California_forest = ephem.Observer() California_forest.date = '2001/01/01 00:00' California_forest.pressure = 0 California_forest.horizon = '-0:34' California_forest.lat, Californi

我试图计算出给定日期和地点的准确日照时间。我一直在研究python模块“Ephem”的日出和集合计算。代码如下:

import ephem
California_forest = ephem.Observer()
California_forest.date = '2001/01/01 00:00'
California_forest.pressure = 0
California_forest.horizon = '-0:34'
California_forest.lat, California_forest.lon = '38.89525', '-120.63275'
California_forest.altitude = 1280

print(California_forest.previous_rising(ephem.Sun()))
2000/12/31 15:21:06

print(California_forest.previous_rising(ephem.Sun()))
2001/1/1 00:50:46
该模块工作得很好,正如其教程所示。但是,我认为可以将“日出”和“日落”输出保存为字符串。当我将计算结果保存到变量时,它给出了一个我不理解的浮点数:

sunrise = California_forest.previous_rising(ephem.Sun())
sunrise
36890.13965508334

sunset = California_forest.next_setting(ephem.Sun())
sunset
36890.53525430675

我希望得到一个与print语句输出相同的字符串,但我错了。是否有人建议我如何使用这些输出并计算给定位置的日照时数?非常感谢

您真正需要的是对象的字符串表示形式。如果必须获取它的字符串表示形式,则调用
\uuu str\uuu()
特殊方法,如下所示

sunrise = California_forest.previous_rising(ephem.Sun()).__str__()
sunrise
'2000/12/31 15:21:06'

sunset = California_forest.next_setting(ephem.Sun()).__str__()
sunset
'2001/1/1 00:50:46'

看起来这是在返回一个
ephem.\u libastro.Date
对象,当它返回打印时看到的格式良好的字符串时

如果您只是在控制台中输入
sunrise
,这实际上与
print(repr(sunrise))
相同,它不会生成好看的字符串。它打印基础浮点值

如果要保存字符串表示,只需将其转换为
str

sunrise = str(California_forest.previous_rising(ephem.Sun()))

如果
print(repr(sunrise))
会得到什么,如果
print(sunrise)
会得到什么,如果
print(type(sunrise))
会得到什么?
\uuu str\uuuuu>是python解释器在将某些内容转换为
str
时调用的特殊方法。它可以直接调用,但简单地调用
str(无论什么)