On 30/10/12 12:36, Frank Pontius wrote:
Hello,
I have code that works.  Then tried to move some of it into function
IncrementAndRebuildInput, then result changes, I no longer have same result
as when code in function was inline - why?

Have you tried running it in isolation to see what it does?

When I try it, it works for me (apart from printing a lot of unnecessary
intermediate results):

py> result = IncrementAndRebuildInput("abc def 123 xyz 456")
['abc', 'def', '123', 'xyz', '456']
124
['abc', 'def', '124', 'xyz', '456']
NOWHERE
457
['abc', 'def', '124', 'xyz', '457']
NOWHERE
['abc', 'def', '124', 'xyz', '457']
Point6



Now check the returned result:

py> result
['abc', 'def', '124', 'xyz', '457']

So it certainly does increment the numbers in the string. The only
bit it doesn't do is rebuild the string, but that takes just one
minor change: instead of "return newstring" (by the way, that's false
advertising -- newstring is not a string, it is a list), use:

    return ' '.join(newstring)


You also use this function:

def IsNum(string):
#    print "IsNum string", string
     for char in string:             #checks string groupings to be all nums
         if not char.isdigit():
#            print "false"
             return False
#    print "true"
     return True

You don't need it! The isdigit method doesn't only work on a single character
at a time, it works on an entire string:

py> "12345".isdigit()
True
py> "12345a".isdigit()
False




--
Steven
_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to