"jessica cruz" <jessica06c...@yahoo.com> wrote

I just started learning python an I'm currently working on this program.

The purpose of this program is to read a string of letters from user
input and print out all the words which are anagrams of the input string.

Where you define an anagram to be a word that is in wordlist I assume?

it says that there is an error "invalid syntax" but I can't figure out where.

Always send us the full error message, it usually tells us where
to look, which is easier than reading the full program!

#this reads all of the words in the file into a list
infile = open('/afs/cats/courses/cmps012a-cm/pa1/wordList.txt')
wdcount = int(infile.readline()) #first item is count of all the words

You do not use this, why bother?

word_list = infile.readlines()
wordList = []
# code that will be compared will be a histogram type code with frequency
# characters
def code(w):
  hist = []
  chars = list(w)
  chars.sort()
   for letter in chars:
if not letter in hist: # when the letter is not already in hist, hist.extend([letter, str(w.count(letter))]) # its added to hist along with its freq.
       else:
          continue
  coding = "".join(hist) # then they are joined as one string
  return coding

# new list is made with words in word_list followed by its code
for word in word_list:
wordList.append(word)
wordList.append(code(word[:(len(word)-2)]))

word[:len(word)-2] could be written much more clearly as
word[:-2]

while True:
word1 = raw_input('Enter word:')
word = word1.lower()
sig = code(word)
i = 1
if sig in wordList:
print "Anagrams:"
while i <= len(wordList): # when the sig of the inputed word is in the word list,
if sig == wordList[i]

This looks like the syntax error - no colon.

I stopped here.
I think there are easier ways to do this!

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/l2p/

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to