Ошибка запроса: IndentationError: ожидается отложенный блок

Вопрос: Я новичок в python, я занимаюсь этим упражнением ). Для следующего кода: numbers = [ 951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544, 615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941, 386, 462, 47, 418, 907, 344, 236,

Вопрос:

Я новичок в python, я занимаюсь этим упражнением ). Для следующего кода:

numbers = [ 951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544, 615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941, 386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345, 399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217, 815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717, 958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470, 743, 527 ] # your code goes here for number in numbers: if number <= 237 and number%2 == 0: print number

У меня возникла следующая проблема:

Traceback (most recent call last): File «/base/data/home/apps/s~learnpythonjail/2.365841894475711898/main.py», line 75, in execute_python exec(code, {}) File «<string>», line 14 print number ^ IndentationError: expected an indented block

Могу ли я узнать, как его решить?

Лучший ответ:

Вот как выглядит ваш код в редакторе, который отображает все пробельные символы с вкладками (размер вкладок равен 4):

Маленькие точки – это символы пробела, а стрелки – вкладки. Как отмечено в других ответах, смешение вкладок и пробелов – плохая идея. Вышеприведенный код может выглядеть нормально, но посмотрите, что произойдет, если вы измените размер вкладок на 8 символов:

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

Ответ №1

Ошибка означает, что print не отступается от уровня предыдущей строки if.

Если в вашем редакторе все равно выглядит так, что линия print имеет отступы, вы смешиваете вкладки и пробелы несогласованно. Замените все вкладки пробелами для исправления.

Вы можете настроить большинство редакторов на использование пробелов только для отступов; это то, что рекомендует Python styleguide (PEP 8):

Вкладки или пробелы?

Никогда не смешивайте вкладки и пробелы.

Самый популярный способ отступов Python – это только пробелы. Второй по популярности способ – только с вкладками. Код с отступом со смесью вкладок и пробелов должен быть преобразован в использование пробелов исключительно. При вызове интерпретатора командной строки Python с параметром -t он выдает предупреждения о коде, который незаконно смешивает вкладки и пробелы. При использовании -t t эти предупреждения становятся ошибками. Эти варианты настоятельно рекомендуется!

Для новых проектов рекомендуется использовать только пробелы по вкладкам. Большинство редакторов имеют функции, которые делают это легко сделать.

Ответ №2

Я воспроизвел ваше дело: одна таблица перед оператором if и 8 пробелов перед печатью. Вместо этого используйте пробелы.

Оцените статью
Добавить комментарий