bigfootsenlou
2021-04-20 19:58
采纳率: 66.7%
浏览 52

python 逻辑运算符and两边的语句的顺序问题

最近用python写了一个堆排序的代码,在向下调整的过程中发现了一个问题

if语句中形如上图它的结果是正确的

 

但是,如果将and两边的语句变换一下位置,结果显示超出列表索引位置。

我想问一下,and 的两边的判断对于语句顺序有关吗?

这句代码是堆向下调整过程中,首先判断两个孩子节点哪个大,然后大的子节点取代根结点。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 桔子code 2021-04-20 20:22
    已采纳

    跟顺序有关系,and左边如果为假,就不再计算右边的表达式,即使右边的表达式可能会抛异常。如果左边的表达式为真才会计算右边的表达式

    点赞 打赏 评论
  • 雷鬼007 2021-04-20 23:56

    从安全编码的角度,一定要先判断j+1的合法性,否则li访问越界

    点赞 打赏 评论

相关推荐 更多相似问题