python判断布尔类型问题

我今天在写一个代码的时候,两个真值判断为假
def INSERTION_SORT(A):
for j in range(len(A)-1):
    key = A[j]
    i = j+1
    print("***********")
    print(j >= 0)
    print(key > A[i])
    print(j >= 0 & key > A[i])

A = [5,2,4,6,1,3]

INSERTION_SORT(A)


True
True
False


True
False
False


True
False
False


True
True
False


True
False
False
[Finished in 52ms]

我想知道这是为什么
print(j >= 0 & key > A[i])

应该改成

print(j >= 0 and key > A[i])

& 是二进制按位与运算符, &优先级高于>=和>比较运算符.
print(j >= 0 & key > A[i]) 是先计算0 & key
等于是print(j >= (0 & key) > A[i])
逻辑与运算符是and

你是用的什么编译器啊,如果是pycharm,你可以打断点,然后就能看到每次的k,i,j的取值了