Hello,

I am trying to do the following :

1) Ask user for the length of the word that he'd like to guess (for
hangman game).
2) Pick a random word from /usr/share/dict/words (which I understand
is not the best choice for hangman).
3) Call a function that would pick a random word to proceed further.

Below is the code for the part I described above :

[code]

#!/bin/env python
import random

def pick_random(l, ln):           # picks a random word from the list
l of length ln
    global mystery
    word = random.choice(l)
    if word.__len__() != ln:
        pick_random(l, ln)        # recursion
    else:
        print "Should return %s" % word     # prints the chosen random
word correctly
        return word                                      # always
return None, why? :(

if __name__ == "__main__":
    ln = raw_input("How long word can you guess (number of alphabets) : ")
    ln = int(ln)
    l = []
    with open("/usr/share/dict/words", "r") as f:
        for i in f.readlines():
            i = i.split("\n")[0]
            if i.isalpha():
                l.append(i)

    word = pick_random(l, ln)
    print word

[/code]

Sample output :

$ python hangman.py
How long word can you guess (number of alphabets) : 6
Should return inarch
None
$

The problem is that the last line "print word" always prints None. I
know I am doing something wrong in the recursion part of the function
"pick_random". Can someone please point what I am missing. Thank you!

Cheers,
Dharmit

-- 
Dharmit Shah
www.about.me/dharmit
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to