Python:仅在数字进入或离开间隔时打印数据

时间:2016-07-11 18:07:54

标签: python astronomy pyephem

目前我正在编写一个脚本,在给定一组天体坐标的情况下,将在接下来的几天告诉您何时该特定望远镜可以看到该点。标准很简单,在水平坐标系统中,物体的高度必须在30到65度之间(此处的变量“暴击”表示该值,但以弧度表示)。 所以我有一组名为“Ant”的望远镜参数然后使用Pyephem:

#imported ephem as ep
obj= ep.FixedBody()
obj._ra= E.ra
obj._dec= E.dec
obj._epoch = E.epoch
Ant.date = ep.now()
for d in range(days):
    for i in range(24):
        for j in range (60):
            Ant.date += ep.minute       
            obj.compute(Ant)
            crit= float(obj.alt)
            if crit>=0.523599 and crit <=1.13446:
                print "Visible at %s" %Ant.date

这导致印刷很多“在2016/7/11 19:41:21可见”,每分钟1次。 我只是希望它打印出类似“在2016/7/11 19:41:21进入能见度,在2016/7/11 23:41:00离开”等字样。 任何想法将不胜感激。

免责声明:对不起,不是母语为英语的人。

1 个答案:

答案 0 :(得分:2)

您需要跟踪它是否已经在范围内。因此,例如,在开始时,您要对其进行初始化:

is_visible = False

并且您的if语句可能如下所示:

if crit>=0.523599 and crit <=1.13446:
    if not is_visible:
        print "Visible at %s" %Ant.date
        is_visible = True
else:
    if is_visible:
        print "No longer visible at %s" % Ant.date
        is_visible = False