2013-11-14 3 views
0

я чувствую себя неловко даже спросить, но питон по какой-то причине Крепости дает мне ошибку моего «я»Ошибка пробела в trvial, python?

def binary_search(l, targetValue): 
      low = 0, high = len(array) 
      while low <= high: 
       mid = (high - low)/2 
       if l[mid] == targetValue: 
        return "we found it!" 
       elif l[mid] > targetValue: 
        low = mid - 1; 
       else  l[mid] < targetValue: #this line seems to be the problem 
        high = mid + 1; 
      print "search failure :(" 
+0

oh нет, это было неправильно – user2928929

+1

Возможно, вы смешали вкладки и пробелы в своем файле? –

ответ

6

Хотя ваш шаг является ненормальным, он на самом деле это не проблема.

Проблема возникает из-за того, что вы используете else с выражением. Вместо этого вам нужно использовать elif:

elif l[mid] < targetValue: 

Или, еще лучше, чтобы избавиться от выражения в целом, так как вы уже испытывали на l[mid] == targetValue и l[mid] > targetValue:

else: 

else средства «для чего-то еще, сделать это". Таким образом, он не оценивает и не поддерживает выражения.

+0

Это была проблема, спасибо! он работает сейчас – user2928929

+0

Пожалуйста, отметьте правильный ответ. Благодарю. – Majid

+0

Теперь он также говорит, что не может назначить его буквальному, я думал, что назначение len (array) на high приемлемо нет? – user2928929

2

Ваша последняя строка «# эта линия, кажется, проблема» должна быть ELIF или ELSE без последующего заявления. Например, вам не нужно «ELSE {Условие}». ELSE означает «все остальное».

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