最近用python写了一个堆排序的代码,在向下调整的过程中发现了一个问题
if语句中形如上图它的结果是正确的
但是,如果将and两边的语句变换一下位置,结果显示超出列表索引位置。
我想问一下,and 的两边的判断对于语句顺序有关吗?
这句代码是堆向下调整过程中,首先判断两个孩子节点哪个大,然后大的子节点取代根结点。
最近用python写了一个堆排序的代码,在向下调整的过程中发现了一个问题
if语句中形如上图它的结果是正确的
但是,如果将and两边的语句变换一下位置,结果显示超出列表索引位置。
我想问一下,and 的两边的判断对于语句顺序有关吗?
这句代码是堆向下调整过程中,首先判断两个孩子节点哪个大,然后大的子节点取代根结点。
跟顺序有关系,and左边如果为假,就不再计算右边的表达式,即使右边的表达式可能会抛异常。如果左边的表达式为真才会计算右边的表达式