[Tutor] ....and another thing!
Andrei Kulakov
ak@silmarill.org
Fri, 03 Aug 2001 11:03:43 -0400
On Fri, Aug 03, 2001 at 10:17:39AM -0700, kromag@nsacom.net wrote:
> In the following:
>
> mport random
import random
> import string
> cards=open('\windows\desktop\cards.txt','r')
'r' is redundant..
> schmack=cards.readlines()
> counter=0
> while counter <10:
> total_cards=len(schmack)
> choose=random.randint(1,string.atoi(`total_cards`))
?? wouldn't random.randint(1,total_cards) work just as well?
> 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?
I'm not sure, but maybe it's off-by-one error? Anyway, if you use
random.choice(), it should be just fine.
>
> _______________________________________________
> Tutor maillist - Tutor@python.org
> http://mail.python.org/mailman/listinfo/tutor
--
Cymbaline: intelligent learning mp3 player - python, linux, console.
get it at: http://silmarill.org/cymbaline