python代码中break问题
想写一个求素数的程序,但是break想让他跳出第二层循环接着第一层循环,但它好像直接跳出两层循环,想问问问题出在哪里了因为你最外层 for 循环迭代的是原列表中的元素所在索引位置
而你在 if 判断中 直接将 list 中元素移除,导致移除后 list 列表之后的元素索引都 -1
所以后续元素索引的改变,而 for 循环迭代到的索引值还是 + 1,导致最外层 for 循环实际漏迭代了
可以将第一个 for 循环处,循环 list 列表的拷贝,即将 for b in list: 改成 for b in list[:]: 即可
Ps:建议不要将 Python 关键字设置为变量名
Twilight6 发表于 2022-7-30 15:39
因为你最外层 for 循环迭代的是原列表中的元素所在索引位置
而你在 if 判断中 直接将 list 中元素移除 ...
谢谢兄弟,兄弟你的意思是我列表长度是4,第一层for循环执行4次,但是我用了remove导致原来的位置一个为空所以其实第一层for循环其实也执行了4次,但最后一次是空空执行是这样吗
页:
[1]