Страницы

Поиск по вопросам

понедельник, 6 января 2020 г.

Что значит ошибка “SyntaxError: inconsistent use of tabs and spaces in indentation”?

#python #python_3x


(Я совсем новичок)
Пишу в IDLE (Python 3.4.1 shell) Когда копирую код из интернета, он ошибки не выдаёт,
а когда я его переписываю буква в букву, он выдаёт ошибку.
вот код из интернета:

>>>for i in 'hello world':
             if i == 'o':
                 continue
             print(i * 2, end='')


Вот мой:

>>> for i in 'hello world':
            if i == 'o':
                continue
            print(i * 2, end='')



  SyntaxError: inconsistent use of tabs and spaces in indentation


В чём ошибка?

Оказывается ошибка была не только в отступах.
Если в питоне вы не правильно написали какую то строчку и после неё нажали Enter,
то после этого программа может вместо переноса на новую строчку прогнать программу.
Когда у меня такое было, я что бы избежать прогона вместо исправления ошибки переходил
на новую строчку долгим нажатием на пробел, а уже потом исправлял ошибку. В результате
программа видела не отступ, а длинную строчку. И выдавала ошибку! Спасибо всем большое.
Ошибка устранена.
НА вопрос в коментарии: Я учусь по смоучителю в интернете https://pythonworld.ru/samouchitel-python
    


Ответы

Ответ 1



В программировании на Питоне, отступы критичны! Они используются языком для создания структуры программы (исходного кода). Не стоит смешивать пробелы и табы. А также надо следить за тем, чтобы отступы были все одинаковые и желательно кратные (например, по 4 пробела).

Ответ 2



На взгляд обе эти коды одинаковыми, но во вашем коде вы в команде if i == 'o': использовали 1 Tab и 8 пробелов, пока в команде print(i * 2, end='') вы использовали 12 пробелов. Дла человека в том нет разницы (т.к. Tab видит как 4 пробели), но Питону это не нравится.

Комментариев нет:

Отправить комментарий