Ошибки синтаксиса 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, прежде чем рисковать дальше.