python列表问题
import random
existN = random.randint(1,100)
popN = random.randint(1,100)
exist=[existN]
pop=[popN]
i1=0
i2=0
i3=0
i4=0
while i1<existN: #exsit N1 numbers
n = random.randint(0,2**31-1)
exist[i1]=n
i1+=1
while i2<popN: #pop N2 numbers
n = random.choice(exist)
pop[i2]=n
i2+=1
while i3<popN: #sort N2 numbers
j = i3+1
while j<=popN:
if pop[i3]>pop[j]:
temp = pop[i3]
pop[i3]= pop[j]
pop[j]= temp
j+=1
i3+=1
while i4<popN: #print sort numbers
print pop[i4]
运行上面这段代码 报错如下:
Traceback (most recent call last):
File "Z:\pythonmyself\random.py", line 12, in <module>
exist[i1]=n
IndexError: list assignment index out of range
我没搞明白,索引怎么就越界了?
请高手指点!!!!!
existN = random.randint(1,100)
popN = random.randint(1,100)
exist=[existN]
pop=[popN]
i1=0
i2=0
i3=0
i4=0
while i1<existN: #exsit N1 numbers
n = random.randint(0,2**31-1)
exist[i1]=n
i1+=1
while i2<popN: #pop N2 numbers
n = random.choice(exist)
pop[i2]=n
i2+=1
while i3<popN: #sort N2 numbers
j = i3+1
while j<=popN:
if pop[i3]>pop[j]:
temp = pop[i3]
pop[i3]= pop[j]
pop[j]= temp
j+=1
i3+=1
while i4<popN: #print sort numbers
print pop[i4]
运行上面这段代码 报错如下:
Traceback (most recent call last):
File "Z:\pythonmyself\random.py", line 12, in <module>
exist[i1]=n
IndexError: list assignment index out of range
我没搞明白,索引怎么就越界了?
请高手指点!!!!!
作者: se865218660 发布时间: 2011-05-27
1. 重贴代码,缩进一塌糊涂
2. 自己debug下,作为任何软件开发者,这种程度的debug能力一定要有的。自己先记下来你期待的数组内容,和索引,然后把数组实际内容和索引打印出来,看是哪个不对。如果是数组不对,就检查和跟踪下数组相关的代码;索引不对也一样。
2. 自己debug下,作为任何软件开发者,这种程度的debug能力一定要有的。自己先记下来你期待的数组内容,和索引,然后把数组实际内容和索引打印出来,看是哪个不对。如果是数组不对,就检查和跟踪下数组相关的代码;索引不对也一样。
作者: iambic 发布时间: 2011-05-27