On 28Apr2015 20:58, Jim Mooney Py3winXP <cybervigila...@gmail.com> wrote:
This is really puzzling me. I'm parsing a string to do some simple math
operations and practice tossing functions around. My parser works on the
first run, then it continually fails on the same input.

[...]
numbers = []
[...]
def parse_string(math_string):
   """Input: A math string with a verbal or mathematical operation
   and two valid numbers to operate on. Extra numbers and operations
   are ignored. Output: A tuple containing a function corresponding
   to the operation and the two numbers. Returns None on failure.
   """
   operation = None
   tokens = math_string.split()
   for token in tokens:
       if token in operations:
           operation = operations[token]
       elif test_number(token) != None:
           numbers.append(test_number(token))
       if len(numbers) > 1:
           break
[...]

At a first glance numbers is a global. It is reset to [] at program start, but never again. So you're appending to it forever. I have not investigated further as to how that affects your program's flow.

Cheers,
Cameron Simpson <c...@zip.com.au>

There are two ways of dealing with this problem: one is complicated and
messy, and the other is simple and very elegant. We don't have much time
left, so I'll just show you the complicated and messy way.
- Richard Feynman, 1981
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to