& ldquo; IndentationError: ожидается отступом block & rdquo; при импорте в Python [duplicate]

Используйте свойство scrollTop содержимого фрейма, чтобы установить вертикальное смещение прокрутки содержимого на определенное количество пикселей (например, 100):

<iframe src="foo.html" onload="this.contentWindow.document.documentElement.scrollTop=100"></iframe>
38
задан Kevin Guan 6 February 2016 в 10:26
поделиться

6 ответов

Как видно из сообщения об ошибке, у вас есть ошибка с отступом. Вероятно, это связано с комбинацией вкладок и пробелов.

53
ответ дан Chris Martin 21 August 2018 в 23:41
поделиться
  • 1
    Первое, что я подумал, поэтому я преобразовал все вкладки в 4 пробела. – ParoX 15 December 2010 в 04:16
  • 2
    @BHare: И ... это не исправить? Я просто скопировал и вставил ваш код и добавил одну строку, trashed_files = ['a','b'], чтобы она запускалась ... не выдавала мне никаких ошибок в отступлении. – mpen 15 December 2010 в 04:17
  • 3
    Я снова выполнил замену, а затем перезаписал строку if len (trashed_files) == 0: потому что она была странной в стиле stackoverflow ... оказалось, что это была проблема ... не знаю, зачем / зачем. Это выглядело так же и в нано. – ParoX 15 December 2010 в 04:24
  • 4
    @BH: см., Вкладки опасны! :п – Katriel 15 December 2010 в 04:32
  • 5
    @katrielalex Точно, даже я получил ту же ошибку, этот пост помог мне ... спасибо всем – max 18 October 2012 в 06:41

У меня была эта же проблема, и я обнаружил (через этот ответ на аналогичный вопрос ), что проблема заключалась в том, что я неправильно неправильно отпечатал докшрин. К сожалению, IDLE не дает полезной обратной связи здесь, но как только я исправил отступы docstring, проблема исчезла.

В частности --- плохой код, который генерирует ошибки отступа:

def my_function(args):
"Here is my docstring"
    ....

Хороший код, который позволяет избежать ошибок отступа:

def my_function(args):
    "Here is my docstring"
    ....

Примечание. Я не говорю, что это проблема, но это может быть так, потому что в моем случае это было!

2
ответ дан Community 21 August 2018 в 23:41
поделиться

в блоке, предназначенном для python, означает, что в моем случае все должно быть записано в моем случае, я написал его таким образом

 def btnClick(numbers):
 global operator
 operator = operator + str(numbers)
 text_input.set(operator)

Note.its дают мне ошибку, пока я не написал это таким образом что «давая пробелы», то это дает мне блок, поскольку я пытаюсь показать вам функцию ниже кода

def btnClick(numbers):
___________________________
|global operator
|operator = operator + str(numbers)
|text_input.set(operator)
0
ответ дан Haseeb Pervaiz 21 August 2018 в 23:41
поделиться

Это просто проблема с отступом, поскольку Python очень строг, когда дело доходит до него.

Если вы используете Sublime, вы можете выбрать все, нажмите на нижнее правое место рядом с «Python» и убедитесь, что вы проверяете «Отступы, используя пробелы», и выберите ширину закладки, чтобы она была последовательной, а затем «Конвертировать отступ» в Пробелы для преобразования всех вкладок в пробелы.

0
ответ дан Rad Apdal 21 August 2018 в 23:41
поделиться

Вы можете проверить пробелы и вкладки. Вкладка по умолчанию - 4 пробела. Однако ваши совпадения «if» и «elif», поэтому я не совсем уверен, почему. Перейдите в «Параметры» в верхней строке и нажмите «Настроить IDLE». Проверьте ширину отступов справа в шрифтах / вкладках и убедитесь, что ваши отступы имеют много пробелов.

0
ответ дан user3317399 21 August 2018 в 23:41
поделиться

На самом деле есть много данных о том, что вам нужно знать об отступе в Python:

Python действительно заботится об отступлении.

На многих других языках отступы не нужны, но улучшить читаемость. В отступе Python заменяет ключевое слово begin / end или { } и поэтому необходимо.

Это проверяется перед выполнением кода, поэтому даже если код с ошибкой отступа никогда не достигнут, он выиграл Работает.

Существуют разные ошибки отступа и вы их читаете много:

1. «IndentationError: ожидается отложенный блок»

Это две основные причины, по которым вы можете получить такую ​​ошибку:

- У вас есть «:» без отступов.

Вот два примера:

Пример 1 без отступов:

Вход:

if 3 != 4:
    print("usual")
else:

Выход:

  File "<stdin>", line 4

    ^
IndentationError: expected an indented block

На выходе указано, что вам нужно иметь отступы 4-й строки после инструкции else:

Пример 2: незакрепленный блок:

Вход:

if 3 != 4:
print("usual")

Выход

  File "<stdin>", line 2
    print("usual")
        ^
IndentationError: expected an indented block

На выходе указано, что вам нужно иметь отступную линию 2, после if 3 != 4:

- вы используете Python2.x и имеете сочетание вкладок и пробелов:

Вход

def foo():
    if 1:
        print 1

Обратите внимание, что раньше, если, это вкладка, а перед печатью - 8 пробелов.

Выход:

  File "<stdin>", line 3
    print 1
      ^
IndentationError: expected an indented block

Трудно понять, что здесь происходит, кажется, что есть блок отступа. .. Но, как я уже сказал, я использовал вкладки и пробелы, и вы никогда не должны этого делать.

  • Здесь вы можете получить информацию здесь .
  • Удалите все вкладки и замените их на четыре пробела.
  • И настройте свой редактор так, чтобы сделать это автоматически.

2. «IndentationError: неожиданный отступ»

Важно блокировать отступ, но только блоки, которые должны быть отступом. Итак, в основном эта ошибка говорит:

- перед вами есть отступы без ":".

Пример:

Вход:

a = 3
  a += 3

Выход:

  File "<stdin>", line 2
    a += 3
    ^
IndentationError: unexpected indent

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

3. «TabError: непоследовательное использование вкладок и пробелов в отступе» (только python3.x)

  • Здесь вы можете получить здесь .
  • Но в основном это, вы используете вкладки и пробелы в своем коде.
  • Вы этого не хотите.
  • Удалите все вкладки и замените их четырьмя пробелами.
  • И настройте ваш редактор, чтобы сделать это автоматически.

В конце концов, чтобы вернуться ваша проблема:

Просто посмотрите номер строки ошибки и исправьте ее, используя предыдущую информацию.

18
ответ дан Xavier C. 21 August 2018 в 23:41
поделиться
Другие вопросы по тегам:

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