[Tutor] ....and another thing!

kromag@nsacom.net kromag@nsacom.net
Fri, 3 Aug 2001 10:17:39 -0700 (PDT)


In the following:

mport random
import string
cards=open('\windows\desktop\cards.txt','r')
schmack=cards.readlines()
counter=0
while counter <10:
	total_cards=len(schmack)
	choose=random.randint(1,string.atoi(`total_cards`))
	chosen=schmack[choose] 
	del schmack[choose]
	print chosen
	counter=counter+1


I will get the occasional:

Traceback (most recent call last):
  File "reader.py", line 9, in ?
    chosen=schmack[choose] 
IndexError: list index out of range
>Exit code: 1

It seems to me that:

total_cards=len(schmack)

should recalculate the number of items in the list with each iteration of the 
loop. Since there are 72 items in the list, and one item is removed from the 
list at the end of every iteration, it stands to reason that the list index 
should be accurately recalculated by len(). Where am I going wrong?