Однако, когда у меня есть пара ненулевых целых чисел, сравниваемых с и / или логикой, я не понимаю, что происходит и почему.
Что случается так, что возвращается первое значение, которое влияет на результат.
x or y
-> оценивается как x
всякий раз, когда выполняется код в блоке if x:
, а в противном случае оценивается как y
.
x and y
-> оценивается как x
всякий раз, когда код в блоке if x:
будет не выполняться, а в противном случае оценивается как y
.
Почему это происходит, потому что GvR так сказал.Возможно, возможно, именно этот трюк и работал, еще до того, как в язык была добавлена конструкция x if C else y
.
Но, вы знаете ... Вы могли бы просто проверить это для себя.Вот для чего нужен REPL:)