[Tutor] Re: problem writing random_word function

Matt Smith smith-matt at tiscali.co.uk
Mon Jul 19 18:40:44 CEST 2004


On Mon, 19 Jul 2004 11:13:11 -0400, Lloyd Kvam wrote:

> You never initialized word_list.  See below.
> 
> You are better off simply appending to word_list rather than maintaining
> your own counter.  len(word_list) will tell you how many entries are
> present when you go to choose a random word.  Also, text.strip() will
> discard the line mark and is portable across operating systems. 
> Stripping the last two characters assumes that you are running with an
> OS that uses two character line marks.

Thanks Lloyd,
I've rewritten the function as below and everything seems to work
correctly.

def random_word(word_length):
    """Returns a random word of length word_length"""
    import random
    f = open("hangman_words.txt","r")
    word_list = []
    while 1:
        word = f.readline()
        word = word.strip()
        if word == "":
            break
        elif len(word) == word_length:
            word_list = word_list + [word]
    f.close()
    return word_list[random.randint(0,(len(word_list)-1))]

Cheers,
Matt.



More information about the Tutor mailing list