В этом семестре я прохожу вводный курс по Python (используя 3.4) и недавно наткнулся на упражнение о приоритете операторов и использовании круглых скобок, чтобы выражение оценивалось как истинное.
Точный вопрос:
Add a single pair of parentheses to the expression so that it evaluates to true.
1 < -1 == 3 > 4
Я предположил, что правильный ответ будет таким:
1 < -1 == (3 > 4)
Учитывая, что все операторы сравнения имеют один и тот же уровень приоритета, они должны оцениваться слева направо, поэтому он должен оцениваться как таковой:
1 < -1 == (3 > 4)
1 < -1 == False
False == False
True
Но когда я запускаю код, он все равно возвращает false. Я видел этот вопрос приоритет операторов сравнения в Python и C/C++ и результат этого выражения мне понятен; но в этом случае я принудительно оценил последнее утверждение перед оценкой остальной части выражения, поэтому я не понимаю, почему я все еще получаю неправильный ответ.
Я пялился на него в течение последнего часа, и мне кажется, что я мог упустить из виду что-то очевидное; если бы кто-нибудь мог дать некоторое представление о том, каким может быть правильное решение, это было бы очень признательно.
and
. - person BrenBarn   schedule 30.01.2015>
быть<
..) - person DSM   schedule 30.01.2015eval
, чтобы вручную вставить круглые скобки во все возможные места, чтобы увидеть, не упустил ли я что-то, и не нашел решений для1 < -1 == 3 > 4
, хотя1 < -1 == 3 < 4
имел(1 < -1 == 3) < 4
. - person DSM   schedule 30.01.20151 < -(1 == 3 > 4)
? У меня нет, но это не имеет значения — это тожеFalse
. - person Robᵩ   schedule 30.01.2015