Python中,用循环写了一个列表的排序,但是循环被强行跳过了

img

img


输入以上代码时,结果只有10 20 30三个元素,我的本意是想进行升序排列。但是在使用debug一步步排错时,发现当i=4,i=5的时候,循环没有执行
可能我表达的不太清楚,请运行一下,解答一下我的困惑,谢谢大家

没有跳过while循环,你在while循环中移除list_old的元素会让list_old的长度变小,进而while循环中len(list_old)变小,当i加到4时不满足whlie循环的条件,循环结束

不要这么写代码,会吃苦头的。
debug要学会用assert

list_old 进行了remove操作,所以len(list_old)长度会逐渐变小

思路挺好,把while那一句改成 while list_old: 就可以了,不需要用 i来计数,因为当list_old的元素都排序好加入到list_new的时候,list_old就变成空列表,循环自然就结束了。