python/pyfits语法错误

python/pyfits语法错误,python,pyfits,Python,Pyfits,我目前正在使用PyFITS进行一些项目。作为Python3.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=

我目前正在使用PyFITS进行一些项目。作为Python3.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
导入pyfits\
hdulist=pyfits.open(“/Users/geo/Desktop/test/casa.fits”)\
对于范围(1,26)内的i:\
str=hdulist[0]。头[i]\
打印(str)\
i=i++;
文件“”,第3行
对于范围(1,26)内的i:\
^
SyntaxError:无效语法
看起来很奇怪,因为当我在“for”之前执行“import”和“hdulist=…”时,就像控制台中的3个不同输入而不是1,我没有得到任何错误

第二个错误----------------------- 当hdulist[0]。header[I]=None时,我尝试处理得到的索引器。 在我的情况下,对于i=26或更大,这是正确的。因此,我使用除:

try:\
        hdulist[0].header[30]==None\
except:\
        print("end of headers")
  File "<ipython-input-28-fe19468a3999>", line 3
    except:\
         ^
SyntaxError: invalid syntax
试试看:\
hdulist[0]。标头[30]==无\
除:\
打印(“标题末尾”)
文件“”,第3行
除:\
^
SyntaxError:无效语法
我不知道如何解决这个问题,所以如果你有一个想法并且非常乐意帮助,谢谢你^^
Geo

嗯,你的语法错了:

  • 缩进很重要
  • 每行末尾的反斜杠都会弄乱缩进和语句的结尾。他们需要离开
  • 不要用
    结束语句,这是Python,而不是C。语句以换行符结尾(同样,用反斜杠转义)
那么

在任何语言中都没有多大意义,但是Python甚至没有
++
操作符,Python也不需要/使用分号来结束语句

你想要

i += 1
另外,不要使用
str
作为变量名,这样会隐藏内置类型

此外,您永远不希望使用裸
,除非:
-始终捕获特定的异常

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

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

但总的来说,看起来你在进一步冒险之前应该先阅读基础知识

为什么要在每行末尾加“\”?去掉反斜杠和分号。缩进在Python中很重要,所以要注意缩进的方式。Python中不存在
i++
(而且,即使在C语言中,
i=i++
也是一个可怕的语句)。此外,FITS头中的值永远不会是
None
。它只会是可以存储在FITS头中的类型的值(基本上是字符串、数字或布尔)。谢谢!是的,我已经改变了I++的版本。我在一个网站上看到了“反斜杠”,当时我正在寻找“如何在控制台中写多行”的帮助。。。那么,当你想写一个“for”的时候,你怎么做不止一行呢?如果你想把一条应该只在一行上的语句拆分成多行,你只需要反斜杠。您几乎不需要在Python中这样做。阅读教程,查看示例,在控制台中尝试它们。例如,为范围(10)中的i键入
,按Enter键,您将看到提示
,显示Python正在等待属于此块的下一个命令。键入四个空格作为缩进,输入
print(i)
,按enter键两次(告诉Python结束该块)。完成。
hdulist[0].header[30] is None  # None is a singleton!