-1

我目前正在使用 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

看起来很奇怪,因为当我在“for”之前执行“import”和“hdulist=...”时,就像控制台中的 3 个不同输入而不是 1 个一样,我没有收到任何错误...

第二个错误----------- 我尝试处理当 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

我不知道如何解决这个问题,所以如果你有一个想法并愿意提供帮助,谢谢!^^ 地理

4

1 回答 1

4

好吧,你的语法是错误的:

  • 缩进很重要。
  • 每行末尾的反斜杠会干扰您的缩进和结束您的语句。他们需要离开。
  • 不要以 结束语句;,这是 Python,而不是 C。语句以换行符结尾(同样,它被你的反斜杠转义)。

然后,

i = i++;

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

你要

i += 1

另外,不要str用作变量名,那样会隐藏内置类型。

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

最后,你真的要比较None吗?如果是这样,请使用

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

但总而言之,看起来你应该在进一步冒险之前阅读基本的Python 教程。

于 2013-06-21T08:51:17.420 回答