>>> l=[(i,j,k) for i in {-4,-2,1,2,5,0} for j in {-4,-2,1,2,5,0} for k in {-4,-2,1,2,5,0} if i+j+k==0 if i==0 & j==0 & k==0]
>>> l
[(0, 0, 0), (0, 2, -2), (0, -2, 2)]
Вышеупомянутый код Python 3 находит тройки (i, j, k) такие, что i + j + k = 0 и все элементы равны 0. Поэтому ответ должен быть (0,0,0).Как Python обрабатывает проверку равенства?
Но ответ пришел был [(0, 0, 0), (0, 2, -2), (0, -2, 2)]
После недолгих поисков я обнаружил, что проблема заключается в использовании &
вместо and
. Я понимаю, что and
является логическим оператором, а &
является побитовым оператором.
Но я не могу понять, почему я получил ответы, полученные с помощью &
.
Как Python3 управляет проверкой на равенство?
Я не понимаю, что это связано с проверкой равенства. –
Я новичок здесь. Поэтому, пожалуйста, отредактируйте название, если вы считаете, что это неправильно. – kryptoknight