"David" <[email protected]> wrote
def uses_all(word, required):
for letter in required:
if letter not in word:
return False
return True
Now, I want to feed this code a list of words. This is what I have
so far:
def uses_all(required):
It is usually better to leave things that work alone.
You could have renamed the original finction then used it
in your new one. That would make the code much simpler.
fin = open('words.txt')
for line in fin:
word = line.strip()
if old_uses_all(word, required)
print word
But as ever its better to return a value from a function rather
than print from inside so i'd make your new function:
def uses_all(required, wordfile="wordlist.txt"):
words = []
for line in open(wordfile):
word = line.strip()
if old_uses_all(word, required)
words.append(word)
return words
required = raw_input("what letters have to be used? ")
print required
for word in uses_all(required)
print word
The code runs, but does not print the words. All I get it the output
of
the 'print required' command:
I realise that my loop fails to execute beyond the first word in the
list ("aa"), but why?
Look at your code:
def uses_all(required):
fin = open('words.txt')
for line in fin:
word = line.strip()
for letter in required:
if letter not in word:
# print "False!"
return False
return exits the function so the first letter you find that is not in
a word you will exit.
--
Alan Gauld
Author of the Learn to Program web site
http://www.freenetpages.co.uk/hp/alan.gauld
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor