Вопрос:
Я новичок в 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 пробелов перед печатью. Вместо этого используйте пробелы.