素数问题:我的python到底错在哪里

问题:求101到200之间的素数
下图:左右两段程序,只有第6行不同,但我认为共含义是一样的:

实际运行结果分别如下:

 

 两个结果相差很远。请问:这是为什么,我右边的程序错在哪里?
先谢了!

 

因为这样你删除了x中的数据,for i in x时就改变x,并不能循环x中所有元素

例如:

x = [1,2,3,4]
for i in x:
    print(i)
    x.remove(i)
    

 

x = list(range(101,201))
for i in x:
    print(i,x)
    x.remove(i)

一个简单的测试,你会发现,所有的偶数都在x中保留了,你在遍历x的时候,针对x的元素进行了删除操作,造成元素指针前移,被隔过去了

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m