2016-12-28 7 views
0
def classify0(inX, dataSet, labels, k): 
    dataSetSize = dataset.shpe[0] 
    diffMat = tile(inX, (dataSetSize, 1)) - dataSet 
    sqDiffMat = diffMat ** 2 
    sqDistances = sqDiffMat.sum(axis = 1) 
    distances = sqDistances ** 0.5 
    sortedDistIndicies = distances.argsort() 
    classCount={} 
    for i in range(k): 
     voteIlabel = labels[sortedDistIndicies[i]] 
     classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1 
    sortedClassCount = sorted(classCount.interitems(), 
           key=operator.itemgetter(1), reverse=true) 
    return sortedClassCount[0][0] 

это мое первое кодирование с использованием python. Я импортировал его на терминал, и он сказал: «IndentationError: unindent не соответствует внешнему уровню отступа». Но я не знаю, как это исправить. пожалуйста помогите.Кто рассмотрит мою первую текстовую кодировку, которая привела к ошибке с отступом?

ответ

0

Вы код по адресу:

sortedClassCount = sorted(classCount.interitems(), 
          key=operator.itemgetter(1), reverse=true) 
    return sortedClassCount[0][0] 

кажется прыгать без причины. Просто удалите все лишние пробелы, как так:

sortedClassCount = sorted(classCount.interitems(), 
    key=operator.itemgetter(1), reverse=true) 
    return sortedClassCount[0][0] 

В питона, так как нет чудаковато скобки {} для обозначения начинается и конца функций интерпретатор использует уровень отступа, чтобы знать разницу. Вот почему ваш код не работает.

попробуйте удалить все отступы и вернуть их, потому что у вас могут быть смешанные пространства с вкладками или вы случайно добавили другое место в место, где у вас его не должно быть.

+0

Эта строка представляет собой просто больше параметров для функции 'sorted'. Это нормально, что строка продолжения каким-либо образом подходит кодеру. Скорее всего, есть смешанные пробелы и вкладки. –

 Смежные вопросы

  • Нет связанных вопросов^_^