indentationerror expected an indented block что значит
Программа не работает. Что делать?
Моя программа не работает! Что делать? В данной статье я постараюсь собрать наиболее частые ошибки начинающих программировать на python 3, а также расскажу, как их исправлять.
Проблема: Моя программа не запускается. На доли секунды появляется чёрное окошко, а затем исчезает.
Причина: после окончания выполнения программы (после выполнения всего кода или при возникновении исключения программа закрывается. И если вы её вызвали двойным кликом по иконке (а вы, скорее всего, вызвали её именно так), то она закроется вместе с окошком, в котором находится вывод программы.
Решение: запускать программу через IDLE или через консоль.
Проблема: Не работает функция input. Пишет SyntaxError.
Причина: Вы запустили Python 2.
Проблема: Где-то увидел простую программу, а она не работает.
Причина: Вам подсунули программу на Python 2.
Решение: Прочитать об отличиях Python 2 от Python 3. Переписать её на Python 3. Например, данная программа на Python 3 будет выглядеть так:
Проблема: TypeError: Can’t convert ‘int’ object to str implicitly.
Причина: Нельзя складывать строку с числом.
Решение: Привести строку к числу с помощью функции int(). Кстати, заметьте, что функция input() всегда возвращает строку!
Проблема: SyntaxError: invalid syntax.
Причина: Забыто двоеточие.
Проблема: SyntaxError: invalid syntax.
Причина: Забыто равно.
Проблема: NameError: name ‘a’ is not defined.
Причина: Переменная «a» не существует. Возможно, вы опечатались в названии или забыли инициализировать её.
Решение: Исправить опечатку.
Проблема: IndentationError: expected an indented block.
Причина: Нужен отступ.
Проблема: TabError: inconsistent use of tabs and spaces in indentation.
Причина: Смешение пробелов и табуляции в отступах.
Решение: Исправить отступы.
Проблема: UnboundLocalError: local variable ‘a’ referenced before assignment.
Причина: Попытка обратиться к локальной переменной, которая ещё не создана.
Проблема: Программа выполнилась, но в файл ничего не записалось / записалось не всё.
Причина: Не закрыт файл, часть данных могла остаться в буфере.
Проблема: Здесь может быть ваша проблема. Комментарии чуть ниже 🙂
IndentationError: expected an indented block
выдаёт ошибку на второй строке.
Знаю что эта ошибка связанная с стандартами РЕР, грубо говоря с отступами и тд, однако все отступы на месте по 4 проблема, смешки табуляции и пробелов нет.
* это кусок кода, весь код отправить не могу *
В чем проблема, если не в отступах?
IndentationError: expected an indented block
В чем ошибка print f.read() SyntaxError: invalid syntax os.chdir(INSTALLER_HOME) пишет.
expected an indented block
Начал изучать python все делал как написано на сайте и выдает ошибку
Где ошибка: expected an indented block?
name = input(«Как я могу к вам обращаться? «) print(«Здравствуй, «, name) age =.
Найти причину ошибки «expected an indented block»
Начал изучать python все делал как написано на сайте Правила форума п.5.19 Потрудитесь свой код.
не грубо, а точно, интерпретатор не ошибается
удаляй отступы и пиши их заново пробелами.
зачем такая вложенность ифов? пробуй упрощать и разбивать на функции
ХЗКАКОЕИМЯ, так это не код, это что-то несусветное, разве это вообще хоть как то работало?
нигде не используется
Добавлено через 1 минуту
Меня больше смущает, что такая ошибка была у всех, но из за отступов, а у меня с отступами все вроде как хорошо, кстати, если Ты не найдешь причину ошибки, то Ты снимаешь шляпу
Добавлено через 1 минуту
ХЗКАКОЕИМЯ, я такое не могу запустить из-за горы твоих ошибок, так что не надо. Мне ИДЕ показывает не интендаейшн ошибку и вообще видимо ты не весь код прислал, а я просил файлом. Для чистоты давай весь код и чтобы там не падало из-за того что написано none или нет тела в условии.
А то тема про отступы а там каша
Добавлено через 2 минуты
возможно еще местная форма ввода поправила пробелы, потому что проблемы нет с отступами
Ошибка expected an intended block
Сама задача звучит так: даны два круга с общим центром и радиусами R1 и R2 (R1 > R2). Найти площади.
IndentationError: expected an indented block
Ошибка: File «D:\ъ\bot.py», line 5 if message.text == «/start» : ^ IndentationError.
IndentationError: expected an indented block
Я еще новичок по питоне и человек я творческий нежели программист, и пишу код который нам дают на.
IndentationError: expected an indented block и еще по мелочи =)
Доброго дня, криптеры) вернее ночи.. Я новичок в пайтоне (пока), раньше начинал изучать.
Oracle Forms: Master block, detail block
Имеется Master block и detail block. Из канвы Master хочу дать возможность 1) вызвать канву detail.
Я получаю IndentationError. Как это исправить?
у меня есть Python-скрипт:
однако, когда я пытаюсь запустить свой скрипт, Python вызывает IndentationError :
Я продолжал играть со своей программой, и я также смог произвести три другие ошибки:
что означают эти ошибки? Что я делаю не так? Как я могу исправить свой код?
4 ответов
почему отступ имеет значение?
в Python отступ используется для разграничения блоки кода. Это отличается от многих других языков, которые используют фигурные скобки <> для разграничения блоков, таких как Java, Javascript и C. Из-за этого пользователи Python должны уделять пристальное внимание тому, когда и как они отступают от своего кода, потому что имеет значение пробел.
немного истории
использование отступов Python происходит непосредственно из ABC, но эта идея не возникла с ABC-он уже был продвинут Дональдом Кнутом и был хорошо известной концепцией стиля программирования. (Язык программирования occam также использовал его.) Однако авторы ABC изобрели использование двоеточия, которое отделяет предложение о вводе от отступа блока. После раннего тестирования пользователя без двоеточия было обнаружено, что смысл отступа был неясен новичкам, обучаемым первым шагам программирования. Добавление толстой кишки значительно прояснило его: толстая кишка каким-то образом привлекает внимание к тому, что следует, и связывает фразы До и после него вместе в правильном направлении.
как сделать отступ мой код?
основное правило для отступа кода Python (учитывая, что вы рассматриваете всю программу как «базовый блок»): первый оператор в базовом блоке, и каждый последующий оператор после него должен быть отступом на ту же сумму.
так что технически следующие программы правильно:
однако, как вы, вероятно, можете сказать сверху, случайный отступ вашего кода делает чрезвычайно трудно читать и следить за потоком программы. Лучше быть последовательным и следовать стилю.
используйте 4 пробела на каждый уровень отступа.
то есть каждое утверждение то есть, начиная новый блок и каждый последующий оператор в новом блоке, должен быть отступом четыре пробела от текущего уровня отступа. Вот выше с отступом по данным руководства стиль PEP8:
можно ли использовать вкладки?
Python понимает, что некоторые люди по-прежнему предпочитают вкладки пробелам и что устаревший код может использовать вкладки, а не пробелы, поэтому он позволяет использовать вкладки в качестве отступов. PEP8 касается этого тема:
пробелы являются предпочтительным методом отступа.
вкладки должны использоваться исключительно для согласования с кодом, который уже имеет отступы с вкладками.
Python 3 запрещает смешивание вкладок и пробелов для отступов.
код Python 2 с отступом со смесью вкладок и пробелов должен быть преобразован в использование исключительно пробелов.
при вызове интерпретатора командной строки Python 2 с параметром-t он выдает предупреждения о коде, который незаконно смешивает вкладки и пробелы. При использовании-tt эти предупреждения становятся ошибками. Эти варианты настоятельно рекомендуется!
что означает» IndentationError: неожиданный отступ»?
эта ошибка возникает, когда оператор имеет излишний отступ или его отступ не совпадает с отступом прежних операторов в том же блоке. Например, первый оператор в программе ниже излишне отступ:
в этом примере can_drive = True строка if блок не соответствует отступу любого предыдущего утверждения:
исправить
исправление этой ошибки заключается в том, чтобы сначала убедиться, что проблемная строка даже должна быть отступом. Например, приведенный выше пример использования print может быть исправлено просто быть unindenting линии:
что означает» IndentationError: ожидаемый отступ блока»?
эта ошибка возникает, когда Python видит ‘заголовок’ для составной оператор, например, if : или while : но тело составного оператора или блок никогда не определяется. Например, в приведенном ниже коде мы начали if утверждение, но мы никогда не определяем тело для утверждения:
в этом втором примере, мы начали писать for цикл, но мы забываем отступ for тело цикла. Поэтому Python по-прежнему ожидает отступом на for петли тело:
комментарии не считаются органы:
исправить
исправление этой ошибки состоит в том, чтобы просто включить тело для составного оператора.
как показано выше, распространенная ошибка новых пользователей является то, что они забывают отступ тела. Если это так, убедитесь, что каждый оператор, предназначенный для включения в тело составного оператора, имеет отступ на том же уровне под началом составного оператора. Здесь является ли приведенный выше пример фиксированным:
Другим распространенным случаем является то, что по какой-то причине пользователь может не захотеть определить фактическое тело для составного оператора или тело может быть прокомментировано. В этом случае pass оператор можно использовать. The pass оператор может использоваться везде, где Python ожидает один или несколько операторов в качестве заполнителя. из документации pass :
вот приведенный выше пример с if оператор исправлен с помощью pass ключевые слова:
что означает «IndentationError: unindent не соответствует никакому внешнему уровню отступа»?
эту ошибку особенно трудно поймать, потому что даже одно пространство приведет к сбою кода.
исправить
исправление состоит в том, чтобы убедиться, что при снятии оператор, уровень отступа соответствует уровню предыдущего оператора. Рассмотрим приведенный выше пример еще раз. В примере я хочу, чтобы второй вызов для печати был в первом if заявления тела. Поэтому мне нужно убедиться, что уровень отступа этой строки соответствует уровню предыдущих утверждений в первом инструкции:
я все еще получаю IndentationError, но моя программа, похоже, правильно отступ. Что мне делать?
если ваш программа визуально имеет правильный отступ, но вы все равно получаете IndentationError у вас, скорее всего,смешанные вкладки с пробелами. Это иногда вызывает Python вызывает странные ошибки. См. подраздел особых случаях под что означает» TabError: непоследовательное использование вкладок и пробелов в отступах»? для более глубокого разъяснения проблемы.
что делает » TabError: непоследовательное использование вкладок и пробелов в отступах» означает?
эта ошибка возникает только при попытке смешать вкладки и пробелы в качестве символов отступа. Как сказано выше, Python не позволит вашей программе содержать сочетание вкладок и пробелов и вызовет конкретное исключение TabError если он найдет, что у вас есть. Например, в приведенной ниже программе для отступов используется сочетание вкладок и пробелов:
здесь изображение, которое визуально показывает пробелы в вышеуказанной программе. Серые точки-это пробелы, а серые стрелки-вкладки:
мы действительно смешанные пробелы и знаки табуляции для отступов.
особых случаях
Обратите Внимание На Python не будет всегда поднять TabError если вы смешиваете вкладки и пробелы в своей программе. Если отступ программы однозначно, Python позволит смешивать вкладки и пробелы. Например:
и иногда Python просто задыхается от смеси вкладок и пробелов и ошибочно поднимает IndentationError исключение, когда TabError было бы более уместно. Другой пример:
как вы можете видеть, запуск вашего кода таким образом может создать таинственные ошибки. Хотя программа визуально кажется, все в порядке, Python запутался, пытаясь разобрать вкладки и пробелы, используемые для отступов и ошибок.
исправить
если ваша программа короткая, вероятно, самым простым и быстрым решением является просто повторный отступ программы. Убедитесь, что каждый оператор отступается четырьмя пробелами на уровень отступа (см. как я отступ мой код?).
однако, если у вас уже есть большая программа, в которую вы смешали вкладки и пробелы, есть автоматические инструменты, которые можно использовать для преобразования всех ваших отступов в просто пробелы.
многие редакторы, такие как PyCharm и SublimeText есть опции для автоматического преобразования вкладок в пробелы. Есть также несколько он-лайн инструментов, таких как Вкладки В Пробелы или Browserling это позволяет быстро изменить отступ кода. Есть также инструменты, написанные на Python. autopep8 например, может автоматически повторно отступать ваш код и другие ошибки отступа, а также.
даже лучшие инструменты, хотя иногда не смогут исправить все ваши ошибки отступов, и вам придется исправить их вручную. Вот почему важно всегда правильно отступать от кода с самого начала.
записку о «SyntaxError» связанные проблемы отступа
хотя и не часто, иногда некоторые SyntaxError исключения возникают из-за неправильного отступа. Например, посмотрите на код ниже:
при выполнении вышеуказанного кода a SyntaxError is raised :
исправить этот тип ошибки-просто правильно изменить отступ вашего кода. Чтобы узнать, как правильно отступить код, см. раздел как сделать отступ мой код?.
мне все еще трудно с синтаксисом отступов Python. Что мне делать?
не расстраивайтесь, если вы все еще боретесь. Он может потребоваться время, чтобы привыкнуть к Правила синтаксиса пробелов Python. Вот несколько советов, которые помогут:
ресурсы используется
Возвышенный Текст 3
если случится, что вы кодируете в Sublime Text 3, это может помочь вам с отступами problemes
в Sublime Text при редактировании файла Python:
возвышенное текстовое меню>предпочтения>Настройки Используется Специальный Синтаксис :
Python.sublime-настройки
вы видите, у вас есть небольшая ошибка.
вы должны были делать:
Как вы можете видеть, ваша печать имеет только отступ 3 пробела, она должна быть отступом 4 пробела.
быстрое исправление для пользователей Sublime:
Python IndentationError: expected an indented block Solution
Python indentation is a stickler. You must correctly indent your code.
- Career Karma matches you with top tech bootcamps Get exclusive scholarships and prep courses
- Career Karma matches you with top tech bootcamps Get exclusive scholarships and prep courses
If you use the wrong arrangement of spaces and tabs in a Python program, you encounter the “IndentationError: expected an indented block” error.
In this guide, we talk about what this error means and why it is raised. We’ll walk through an example of this error to help you figure out how to solve it in your code.
IndentationError: expected an indented block
Programming languages like C and JavaScript do not require particular indentation. This is because they use curly braces to denote the structure of code blocks. Python does not use curly braces or a similar indicator.
The language depends on indentation to determine the structure of a program. Without indentation, it is impossible for the Python interpreter to know how to read a block of code.
Consider the following Python code:
How does Python know what code is part of the find_average() defined function and what code is part of the main program? This shows why indentation is so important.
Any time you forget to indent code in a program, Python makes you aware of this by raising an indentation error.
81% of participants stated they felt more confident about their tech job prospects after attending a bootcamp. Get matched to a bootcamp today.
Find Your Bootcamp Match
The average bootcamp grad spent less than six months in career transition, from starting a bootcamp to finding their first job.
Start your career switch today
An Example Scenario
Let’s write a program that extracts all bagels from a list of lunch foods on a cafe lunch menu. These bagels will be added to their own list.
Let’s start by defining a list of all the foods available at lunch time:
Our lunch menu contains two sandwiches and two bagels. Next, we write a function that creates a new list of bagels based on the contents of our “lunch_menu” list:
Our get_bagels() function accepts one argument: the menu items through which the function should search. Our function iterates through each item on the menu and checks if the item contains the word “bagel”. If it does, that lunch food is added to the “bagels” list.
Finally, we have to call our function in our main program:
This code will call our get_bagels() function and then print the list of bagels it creates to the console. Let’s run our code and see what happens:
Ошибка expected an indented biock в Python, как исправить?
Пишу калькулятор вот такая ошибка:
if user_action == ‘ВЫЧИТАТЬ’ or user_action == ‘вычитать’ or user_action == ‘Вычитать’:
^
IndentationError: expected an indented block
print(»)
print(»)
print(‘КАЛЬКУЛЯТОР’)
print(‘Правила исполнения’)
print(‘***___***’)
print(‘Вначале введите 2 числа с которыми будете проводить действия’)
print(‘Введите СЛОЖИТЬ чтобы сложить 2 числа’)
print(‘Введите ВЫЧИТАТЬ чтобы вычесть 2 введённых числа’)
print(‘Введите УМНОЖИТЬ чтобы умножить 2 введённых числа’)
print(‘Введите РАЗДЕЛИТЬ чтобы разделить 2 введённых числа’)
print(‘Введите СТЕПЕНЬ чтобы возвести число в степень’)
print(‘Введите ОСТАТОК чтобы найти остаток от деления’)
print(‘Введите СТОП чтобы завершить программу’)
print(»)
chislo = float(input(‘Введите перввое число: ‘))
chislo1 = float(input(‘Введите второе число: ‘))
user_action = input(‘Введите действие: ‘)
if user_action == ‘СТОП’ or user_action == ‘стоп’ or user_action == ‘Стоп’:
break
if user_action == ‘СЛОЖИТЬ’ or user_action == ‘сложить’ or user_action == ‘Сложить’:
if user_action == ‘ВЫЧИТАТЬ’ or user_action == ‘вычитать’ or user_action == ‘Вычитать’:
if user_action == ‘УМНОЖИТЬ’ or user_action == ‘умножить’ or user_action == ‘Умножить’:
if user_action == ‘РАЗДЕЛИТЬ’ or user_action == ‘разделить’ or user_action == ‘Разделить’:
if user_action == ‘СТЕПЕНЬ’ or user_action == ‘степень’ or user_action == ‘Степень’:
if user_action == ‘ОСТАТОК’ or user_action == ‘остаток’ or user_action == ‘Остаток’: