我目前正在使用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
我不知道如何解决这个问题,所以如果你有一个想法并且善于帮助,谢谢! ^^ 地理位置
答案 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。