python / pyfits语法错误

时间:2013-06-21 08:45:57

标签: python pyfits

我目前正在使用PyFITS开展一些项目。作为python 3.3的初学者,我无法弄清楚我得到的两个错误...... 第一个错误------------------------

import pyfits;\
hdulist = pyfits.open('/Users/geo/Desktop/test/casa.fits')\
for i in range(1,26) :\
        str = hdulist[0].header[i];\
        print(str);\
        i=i++;
  File "<ipython-input-41-651183e88e23>", line 3
    for i in range(1,26) :\
      ^
SyntaxError: invalid syntax

似乎很奇怪,因为当我做&#34; import&#34;和&#34; hdulist = ...&#34;在&#34; for&#34;之前,就像在控制台而不是1中的3个不同的输入一样,我没有得到任何错误......

第二次错误----------------------- 我尝试处理当hdulist [0] .header [i] = None时得到的IndexError。 在我的情况下,对于i = 26或更高,这是正确的。所以我使用除了:

try:\
        hdulist[0].header[30]==None\
except:\
        print("end of headers")
  File "<ipython-input-28-fe19468a3999>", line 3
    except:\
         ^
SyntaxError: invalid syntax

我不知道如何解决这个问题,所以如果你有一个想法并且善于帮助,谢谢! ^^ 地理位置

1 个答案:

答案 0 :(得分:4)

嗯,你的语法错了:

  • 缩进很重要。
  • 每行末尾的反斜杠弄乱你的缩进并结束你的陈述。他们需要离开。
  • 不要使用;结束语句,这是Python,而不是C.语句以换行符结束(再次通过反斜杠转义)。

然后,

i = i++;

任何语言中没有多大意义,但Python甚至没有++运算符,Python不需要/使用分号来结束语句。< / p>

你想要

i += 1

另外,不要使用str作为变量名称,而是以这种方式遮蔽内置类型。

此外,您永远不想使用裸except: - 始终捕获特定的例外。

最后,你真的想与None进行比较吗?如果是这样,请使用

hdulist[0].header[30] is None  # None is a singleton!

但总而言之,看起来非常像你应该在进一步冒险之前阅读基本的Python tutorial