python筛选法找出素数和字符串过滤

问题遇到的现象和发生背景

写一晚上了这两个代码究竟有什么问题!

问题相关代码,请勿粘贴截图
运行结果及报错内容

img


img

我的解答思路和尝试过的方法

第一个中直接筛选i的倍数
第二个先遍历然后把是0的删掉

我想要达到的结果

第一题的筛法,有三个错误
1)range里不是冒号,而是逗号
2)逻辑错误,赋值是一个等号,应该改成L[j*i]=0
3)下标越界,应该是range(2,n+1)

img

第二题的问题主要在于一边遍历列表,一边修改列表,导致列表长度发生变化,下标越界,建议遍历列表的副本:

s=input()
L=[int(x) for x in s.split(',')]
for i in L[:]:
    if i==0:
        L.remove(i)
print(L)