Документация говорит использовать os.path.join()
:
. Результатом может быть либо абсолютное, либо относительное имя пути; если он относительный, он может быть преобразован в абсолютный путь с помощью
os.path.join(os.path.dirname(path), result)
.
Другие плакаты, вероятно, корректны... могли бы быть пробелы, смешанные в с Вашими вкладками. Попытайтесь делать поиск & замените к замене все вкладки с несколькими пробелами.
Попытка это:
import sys
def Factorial(n): # return factorial
result = 1
for i in range (1,n):
result = result * i
print "factorial is ",result
return result
print Factorial(10)
Строка: result = result * i
должен быть расположен с отступом (это - тело для цикла).
Или - Вы смешали пробелы и символы табуляции
Каждый раз, когда я встретился с этой ошибкой, это - потому что я так или иначе перепутал вкладки и пробелы в моем редакторе.
Вы уверены, что не смешиваете вкладки и пробелы в Вашем пробеле добавления отступа? (Который вызовет ту ошибку.)
Примечание, рекомендуется не использовать вкладки в коде Python. Посмотрите руководство по стилю . Необходимо настроить Блокнот ++ для вставления пробелов для вкладок.
Для легкой проверки на проблемы с вкладками/пробелами, можно на самом деле сделать это:
python -m tabnanny yourfile.py
или можно просто настроить редактора правильно, конечно, :-)
Для SPYDER пользователи: я использую spyder 3.3.2 с Python 3.7.1, и я решил это, установив добавление отступа, чтобы использовать вкладки, со следующими шагами, нажать:
Тогда я сбросил "unidented" строку с помощью клавиши Tab.
По некоторым причинам, без этой установки, я добирался фантом IndentationError иногда.
В intellij с плагином Python Ctrl + Сдвиг + Высокий звук для переформатирования документа решил проблему отступа/вкладки/пробелов