[Tutor] Print record x in a file

Max Noel maxnoel_fr at yahoo.fr
Sun Jan 23 23:37:54 CET 2005


On Jan 23, 2005, at 22:08, Liam Clarke wrote:

> Don't you mean
>
> x=random.randint(0, lenoflist) ?? I'm assuming you want an integer.

	random.randrange() returns an item (which can be a float or whatever, 
but by default is an int) in the specified range. In that case, an int 
between 0 and lenoflist.
	The advantage over random.randint is that you can specify a step. Thus,
random.randrange(0, 257, 2) will return an even number between 0 and 
256 inclusive.

>> While although this code below does work many times
>> nothing is printed out.
>> import random
>> i = 0
>> while i < 10:
>>     file = open('test.rantxt')
>>     listcontents = file.readlines()
>>     file.close()
>>     lenoflist = len(listcontents)#-1
>>     x = random.randrange(0,lenoflist)
>>     print listcontents[x], i
>>     i = i +1

	Anyway, the problem with this function is that len returns a number of 
items, but Python, like most good programming languages (and 
mathematicians), counts starting from 0. Thus, the first element in a 
list is foo[0].
	foo[len(foo)] will raise an IndexError.

-- Max
maxnoel_fr at yahoo dot fr -- ICQ #85274019
"Look at you hacker... A pathetic creature of meat and bone, panting 
and sweating as you run through my corridors... How can you challenge a 
perfect, immortal machine?"



More information about the Tutor mailing list