Python:仅当数字进入或离开区间时才打印数据
Python: Printing data only when number enters or leaves interval
目前我正在制作一个脚本,给定一组天体坐标,它将在接下来的几天告诉您该点对特定 telescope 可见的时间。条件很简单,在水平坐标系中,object 的高度必须在 30 到 65 度之间(这里变量 "crit" 表示,但以弧度表示)。
所以我有一组 telescope 的参数,称为 "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
这导致打印很多 "Visible at 2016/7/11 19:41:21",每分钟 1 个。
例如,我只希望它打印类似 "Enters visibility at 2016/7/11 19:41:21, leaves at 2016/7/11 23:41:00" 的内容。
任何想法将不胜感激。
免责声明:抱歉,我的母语不是英语。
您需要跟踪它是否已经在范围内。所以,例如,在开始时你会初始化它:
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
目前我正在制作一个脚本,给定一组天体坐标,它将在接下来的几天告诉您该点对特定 telescope 可见的时间。条件很简单,在水平坐标系中,object 的高度必须在 30 到 65 度之间(这里变量 "crit" 表示,但以弧度表示)。 所以我有一组 telescope 的参数,称为 "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
这导致打印很多 "Visible at 2016/7/11 19:41:21",每分钟 1 个。 例如,我只希望它打印类似 "Enters visibility at 2016/7/11 19:41:21, leaves at 2016/7/11 23:41:00" 的内容。 任何想法将不胜感激。
免责声明:抱歉,我的母语不是英语。
您需要跟踪它是否已经在范围内。所以,例如,在开始时你会初始化它:
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