python为什么老是显示IndexError: list index out of range?求纠错

首先创建一个数字列表从2到n,第一个数字是从名单中剔除,并宣布为一个素数,这个数字的倍数为n从名单中剔除。这个过程一直持续到列表是空的的。defmain():n=inpu... 首先创建一个数字列表从2到n,第一个数字是从名单中剔除,并宣布为一个素数,这个数字的倍数为n从名单中剔除。这个过程一直持续到列表是空的的。

def main():
n=input("what's the limit n?")
mylist=range(2,n+1)
primes=[]
while mylist!=[]:
a=mylist.pop(0)
primes.append(a)
for i in range(0,len(mylist)):
if mylist[i]/a*a==mylist[i]:
del mylist[i]
print primes
main()
求纠错,好像是这个地方不对mylist[i]/a*a==mylist[i]
展开
 我来答
蒲公英随风飘舞哈
2011-12-10 · TA获得超过1431个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:528万
展开全部
你 del了列表元素,列表项目就减少了,比如一开始mylist是10个数字,则range循环10次,从0到9, 而在下面的if语句中,你删除了mylist中的一个元素,这时候mylist长度变成了9, 你再访问mylist[9]就越界了,所以会报IndexError: list index out of range错误
更多追问追答
追问
def main():
n=input("what's the limit n?")
mylist=range(2,n+1)
primes=[]
p=[]
while mylist!=[]:
a=mylist.pop(0)
primes.append(a)
for i in range(0,len(mylist)):
if mylist[i]/a*a==mylist[i]:
p.append(i)
del mylist[?]
print primes
main()
我想这样写,可是不知道问号那个地方应该怎样弄?菜鸟求指教
追答
你这个题目我看不懂,算2-n之间的素数?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式