Синтаксическая ошибка при запутанном составном операторе Python

Я пытаюсь запустить пример quadtree (первая часть кода на этом page) из pygame, но получаю синтаксическую ошибку в очень запутанной строке:

in_nw = item.left <= cx and item.top <= cy

Синтаксическая ошибка указывает на второй знак равенства в выражении (<=). Я знаю, что точки с запятой можно использовать для размещения нескольких выражений в одной строке, но не означает ли это, что это будет то же самое, что и:

        in_nw = item.left &lt
        = cx and item.top &lt
        = cy

Проблема в том, что это не имеет никакого смысла с начальным знаком равенства. Там должно быть что-то еще. Я потратил пару часов, пытаясь понять это и читая о составных утверждениях.

Кто-нибудь знает, что это должно делать, или другой способ написать это? Я предполагаю, что это сработало для автора и парня, который разместил аналогичный код под ним с тем же синтаксисом, но по какой-то причине это не работает для меня. Я действительно просто хочу переписать эту часть, не расшифровывая остальную часть его кода, чтобы понять, что он пытался сделать.


person Airuno2L    schedule 17.09.2014    source источник
comment
Я предполагаю, что это должно быть <=. Похоже, код был каким-то образом перепутан, когда он был вставлен на HTML-страницу, и символы были экранированы в именах объектов HTML.   -  person BrenBarn    schedule 17.09.2014
comment
это python, который был закодирован в html, превращая все < в &lt;, например. что-то испортило код   -  person Marc B    schedule 17.09.2014
comment
Вау, спасибо всем! Все правы, хотел бы я отметить их все правильно. Я бы никогда не получил это, и вы все ответили так быстро, что я даже не могу пока ответить.   -  person Airuno2L    schedule 17.09.2014


Ответы (2)


Это просто проблема разметки. &lt; должно быть <

Вся строка должна выглядеть так:

in_nw = item.left <= cx and item.top <= cy
person That1Guy    schedule 17.09.2014

Синтаксис довольно странный, по какой-то причине вместо знака меньше написано <. Это обычно используемый HTML и другие языки разметки, где угловые скобки используются для фактических тегов, а не меньше или больше.

Замена < на ‹ и > на > должна это исправить.

person Reed Oei    schedule 17.09.2014
comment
Ваши &lt; и &gt; были интерпретированы как объекты HTML и преобразованы в < и >. Таким образом, вы попали в ту же ловушку, что и ребята, которые написали эту вики-страницу, только наоборот. (Используйте обратные кавычки, чтобы процитировать их). - person Lukas Graf; 17.09.2014
comment
Ха-ха упс! Спасибо, я исправил. - person Reed Oei; 17.09.2014