python为什么老是显示IndexError: list index out of range?求纠错首先创建一个数字列表从2到n,第一个数字是从名单中剔除,并宣布为一个素数,这个数字的倍数为n从名单中剔除.这个过程一直持续到列表

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 07:37:11
python为什么老是显示IndexError:listindexoutofrange?求纠错首先创建一个数字列表从2到n,第一个数字是从名单中剔除,并宣布为一个素数,这个数字的倍数为n从名单中剔除.

python为什么老是显示IndexError: list index out of range?求纠错首先创建一个数字列表从2到n,第一个数字是从名单中剔除,并宣布为一个素数,这个数字的倍数为n从名单中剔除.这个过程一直持续到列表
python为什么老是显示IndexError: list index out of range?求纠错
首先创建一个数字列表从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]

python为什么老是显示IndexError: list index out of range?求纠错首先创建一个数字列表从2到n,第一个数字是从名单中剔除,并宣布为一个素数,这个数字的倍数为n从名单中剔除.这个过程一直持续到列表
你 del了列表元素,列表项目就减少了,比如一开始mylist是10个数字,则range循环10次,从0到9,而在下面的if语句中,你删除了mylist中的一个元素,这时候mylist长度变成了9,你再访问mylist[9]就越界了,所以会报IndexError:list index out of range错误