这段代码太长了,无法发布整个内容,所以希望问题只是包含在这个循环中,但我真的很困惑这里有什么问题。我有这个循环:
if index == 1:
mag_diffs = []
counter = 0
while (image_objects[counter].magr_value > -6.0) and (image_objects[counter].magr_value < -4.0) and (counter < 5):
mag_diff = (image_objects[counter].magr_value - new_s_objects[counter].magr)
print 'mag_diff is:'
print mag_diff
mag_diffs.append(mag_diff)
counter +=1
mag_diffs.sort()
mag_offset = np.median(mag_diffs)
当我尝试在此处调用它时,它会在代码中遇到错误:
sextractor_mr.append((new_s_objects[index].magr + mag_offset))
它给出了这个错误:
Traceback (most recent call last):
File "sextractor_reader.py", line 272, in <module>
sextractor_mr.append((new_s_objects[index].magr + mag_offset))
IndexError: list index out of range
但是我也发现while循环条件永远不会被满足(它应该是五次)所以当我注释掉while循环并删除缩进时,它就会在while循环中执行时间,我收到这个错误:
Traceback (most recent call last):
File "sextractor_reader.py", line 252, in <module>
mag_diff = (image_objects[counter].magr_value - new_s_objects[counter].magr)
TypeError: unsupported operand type(s) for -: 'instance' and 'float'
我试图查找错误消息,但没有找到与我的情况类似的内容。我对课程不是很满意所以我认为它与尝试使用这些课程有关。希望错误包含在我给你的内容中,但代码真的太长了,无法发布所有内容(如1000行)。
编辑:好吧,这里有什么问题。我打印了 image_objects [0] .magr_value 在if语句之上,它返回
<__main__.SDSS_object instance at 0x10bd4d7a0>
这根本不是我想要的。我想要一个有价值的浮动。我认为这就是你打电话给你的课程。
答案 0 :(得分:0)
您必须向我们提供更多详细信息以便为您提供详细信息,但我可以为您解码错误消息。它告诉您image_objects[counter].magr_value
不是数字类型。它是一些其他类型(具体为instance
),不能从中减去数字。像俞昊指出的那样,我们需要一个完整的例子来帮助你。