写一晚上了这两个代码究竟有什么问题!
第一个中直接筛选i的倍数
第二个先遍历然后把是0的删掉
第一题的筛法,有三个错误
1)range里不是冒号,而是逗号
2)逻辑错误,赋值是一个等号,应该改成L[j*i]=0
3)下标越界,应该是range(2,n+1)
第二题的问题主要在于一边遍历列表,一边修改列表,导致列表长度发生变化,下标越界,建议遍历列表的副本:
s=input()
L=[int(x) for x in s.split(',')]
for i in L[:]:
if i==0:
L.remove(i)
print(L)