Разработка на Python — неожиданная проблема с отступом

#python #django

#python #django

Вопрос:

Недавно я вставил оператор if в какой-то ранее работавший код. Теперь я получаю неожиданную ошибку отступа, когда запускаю ее в начале своего оператора if.

    ImpressionsBasedOnWeight = setImpressionsBasedOnWeight(setImpressionsBasedOnWeightData)
   impressions = data[2]
       if reportSuite.RP_UniqueUsers > weighted_impressions:
           users = weighted_impressions
       else:
           users = reportSuite.RP_UniqueUsers
   Pages_in_thousands = impressions / 1000
  

Если я удалю отступ, он не сможет сказать, что ожидает отступ, и если я затем добавлю отступ, он не сможет сказать, что неожиданный отступ…

Ответ №1:

impressions = data[2] это простое назначение. Впоследствии отступ не должен изменяться. Итак, вам нужно иметь impressions = .. и if .. с тем же отступом:

 ImpressionsBasedOnWeight = setImpressionsBasedOnWeight(setImpressionsBasedOnWeightData)
impressions = data[2]
if reportSuite.RP_UniqueUsers > weighted_impressions:
    users = weighted_impressions
else:
    users = reportSuite.RP_UniqueUsers
Pages_in_thousands = impressions / 1000
  

Кроме того, убедитесь, что вы не переключаетесь между табуляциями и пробелами для отступов. Вы можете установить некоторые индикаторы для отображения символов для вкладок, и хороший редактор должен унифицировать отступ, когда вы выделяете весь код, нажимаете Tab , а затем Shift Tab .

Ответ №2:

Зачем ставить if с отступом?

    ImpressionsBasedOnWeight = setImpressionsBasedOnWeight(setImpressionsBasedOnWeightData)
   impressions = data[2]
   if reportSuite.RP_UniqueUsers > weighted_impressions:
       users = weighted_impressions
   else:
       users = reportSuite.RP_UniqueUsers
   Pages_in_thousands = impressions / 1000