weixin_57597570
zj睦
2021-06-17 12:46
采纳率: 100%
浏览 33

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

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

实际运行结果分别如下:

 

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

 

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

3条回答 默认 最新

  • LOVEmy134611
    盼小辉丶 2021-06-17 12:58
    已采纳

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

    例如:

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

     

    点赞 1 评论
  • technologist_51
    CSDN专家-文盲老顾 2021-06-17 12:59
    x = list(range(101,201))
    for i in x:
        print(i,x)
        x.remove(i)

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

    点赞 1 评论
  • QA_Assistant
    有问必答小助手 2021-06-19 15:48

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

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

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

    点赞 评论

相关推荐