-1

私は現在、PyFITS を使用していくつかのプロジェクトに取り組んでいます。Python 3.3 の初心者として、私が得る 2 つのエラーを理解できません... 最初のエラー------------------------

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 = ...」を実行すると、1つではなくコンソールに3つの異なる入力があるように、エラーが発生しないため、奇妙に思えます...

2 番目のエラー----------------------- 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

さて、あなたの構文は間違っています:

  • インデントが重要です。
  • 各行の末尾にあるバックスラッシュは、インデントとステートメントの終わりを混乱させます。彼らは立ち去る必要があります。
  • ステートメントを;で終わらせないでください。これは C ではなく Python です。ステートメントは改行で終わります (これもバックスラッシュでエスケープされます)。

それで、

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 に答える