Wechat_User007 2022-01-10 21:20 采纳率: 0%
浏览 41

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]

我想知道这是为什么
  • 写回答

2条回答 默认 最新

  • 关注
    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

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 1月10日

悬赏问题

  • ¥15 CST软件仿真,已知中心线方程构建图形
  • ¥15 supLink 用户定位
  • ¥15 materials studio中sorption模块得到的吸附量如何计算出绝对吸附量和自由气量
  • ¥15 odoo17生产成品入出库会计日记账设置及自动产生会计分录
  • ¥15 MCU控制20V PWM波输出的控制电路
  • ¥15 关于智能数据系统的问题
  • ¥15 python 打包sdk不成功,如何解决?
  • ¥15 adv找不到可向其添加属性的有效项目。
  • ¥15 cesm2.2.0移植问题。./manage_externals/checkout_externals
  • ¥15 ntp对时中的时标问题