Вопрос:

Странное логическое поведение с переменной и числом

python logic boolean-logic inequality

67 просмотра

2 ответа

835 Репутация автора

Скажем, я определяю aи bследующим образом:

a = 1
b = 1

Затем я проверяю:

a == 1
#True

5>4
#True

a==1 & b==1
#True

5>4 & 4>3
#True

a==1 & 5>4
#False

Что происходит с последним? Я хотел бы иметь возможность проверить последнее неравенство и получить результат True.

Автор: bill999 Источник Размещён: 22.08.2016 08:37

Ответы (2)


6 плюса

1753 Репутация автора

Решение

В Python &для битовых операций с числами, а не логики. Используйте andи orвместо.

Автор: Dmitry Torba Размещён: 22.08.2016 08:38

-1 плюса

26 Репутация автора

В отличие от C, все операции сравнения в Python имеют одинаковый приоритет, который ниже, чем у любой арифметической, сдвигающей или побитовой операции. Также в отличие от C, выражения типа

Что значит:

a==1 & 5>4 is equal to 
a == ( 1 % 5 ) > 4
a == 1 > 4
True > 4

False
Автор: Yordan Atanasov Размещён: 22.08.2016 09:22
Вопросы из категории :
32x32