[Tutor] problem with an anagram program
jessica cruz
jessica06cruz at yahoo.com
Mon Mar 9 09:28:38 CET 2009
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. This is what I have and when I try to run the program it says that there is an error "invalid syntax" but I can't figure out where.
#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
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)]))
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]
print wordList[i-1] # the corresponding words are printed
i += 2 # then adds two because codes are every other entry
else:
print "No anagrams"
choice = raw_input("Continue? (yes/no)")
if choice == 'y' or choice == 'yes':
continue
else:
break
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20090309/54781b33/attachment.htm>
More information about the Tutor
mailing list