"Frank Chang" <frankchan...@gmail.com> wrote

Good morning, I am using Python 2.7.1 on Windows XP Service Pack 3. Here is the program where the Python interpreter complains about NameError:
global name 'levenshtein_automata' is not defined.

The others have answered the specific question, however I think you
have another problem lurking:

def find_all_matches(self, word, k, lookup_func):
   lev = levenshtein_automata(word, k).to_dfa()
   match = lev.next_valid_string('\0')
   while match:
       next = lookup_func(match)
       if not next:
          return

Here you return a None value

       if match == next:
         yield match
         next1 = next1 + '\0'
      match = lev.next_valid_string(next1)

length = len(list(testdfa.find_all_matches('food', 1, m))) ######## line 174

And here you try to convert the return value to a list.
But list(None) will fail with a TypeError.
You should probably returm an empty string or raise an exception
and catch it in your main block.

HTH,

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



_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to