Python & ldquo; с заявлением & rdquo; работает в консоли, но не в терминале Ubuntu [дубликат]

Это означает, что вы пытаетесь манипулировать тем, что имеет ссылку, но еще не инициализировано. Первое, что нужно сделать, это проверить каждый созданный экземпляр. Используйте контрольные точки, часы, проверяйте свои значения varibale. Следить за трассировкой стека и искать точные строки и столбцы, которые создают проблему

2
задан mike_e 30 March 2010 в 01:05
поделиться

3 ответа

С Python 3 функция print - это функция, а не оператор, поэтому вам нужны скобки вокруг аргументов, как в print("continue"), если вы использовали Python 3.

однако, указывает на более раннюю позицию, чем на Python 3, поэтому вместо этого вы должны использовать Python 2.x. В этом случае ошибка возникает из-за того, что вы вводите это в интерактивном интерпретаторе, и ему нужна небольшая «помощь», чтобы выяснить, что вы пытаетесь сказать. Введите пустую строку после предыдущего блока, чтобы он мог правильно расшифровать отступ, как в этом:

>>> try:
...     fsock = open("/bla")
... except IOError:
...     print "Caught"
...
(some output shows here)
>>> print "continue"
5
ответ дан Peter Hansen 27 August 2018 в 23:36
поделиться

Попробуйте это в интерпретаторе:

try:
    fsock = open("/bla")
except IOError:
    print "Caught"

print "continue"

Важно, что это пустая строка после отступа. Я использую интерпретатор python 2.6, и он выдает ту же синтаксическую ошибку, что и вы.

Это потому, что интерпретатор ожидает, что отдельные блоки будут разделены пустыми строками. Кроме того, пустая строка (два новых строчных символа) указывает конец блока и что интерпретатор должен выполнить его.

2
ответ дан ergosys 27 August 2018 в 23:36
поделиться

Вам нужно оставить пустую строку, чтобы закрыть блок except. ... указывает, что он все еще пытается поместить код в этот блок, даже если вы его отделите. Это всего лишь причуда интерактивного интерпретатора.

4
ответ дан Mike Graham 27 August 2018 в 23:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: