Ошибки синтаксиса python/pyfits

В настоящее время я работаю над некоторым проектом, использующим PyFITS. Как новичок в Python 3.3, я не могу понять две ошибки, которые я получаю... 1-я ошибка ------------------------

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

Кажется странным, поскольку, когда я делаю "import" и "hdulist =..." перед "for", как 3 разных ввода в консоли вместо 1, я не получаю ошибку...

2-я ошибка ----------------------- Я пытаюсь обработать IndexError, которую я получаю, когда hdulist[0].header[i]= Нет. В моем случае это верно для 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 ответ

Решение

Ну, ваш синтаксис неправильный:

  • Отступы имеют значение.
  • Обратные косые черты в конце каждой строки смешиваются с вашим отступом и завершением ваших утверждений. Они должны уйти.
  • Не заканчивайте заявления ; это Python, а не C. Операторы заканчиваются символом новой строки (который, опять же, экранируется обратной косой чертой).

Затем,

i = i++;

не имеет особого смысла ни на одном языке, но Python даже не имеет ++ оператор, и Python не требует / использует точки с запятой для завершения оператора.

Ты хочешь

i += 1

Кроме того, не используйте str как имя переменной, вы таким образом скрываете встроенный тип.

Кроме того, вы никогда не хотите использовать голые except: - всегда ловить конкретные исключения.

Наконец, вы действительно хотите сравнить с None? Если так, используйте

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

Но, в целом, похоже, что вы должны прочитать базовый учебник по Python, прежде чем рисковать дальше.

Другие вопросы по тегам