daniel.dittmar at sap.com
Thu Aug 5 14:02:23 CEST 2004
You are not returning the value of the recursive call
self.linearSearch(value, index + 1).
Hmm, implementing a linear search through recursion. Is your first language
Nickolay Kolev wrote:
> Hi all,
> I have set to implementing a few basic algorithms in Python serving a
> twofold purpose: learning the algorithms and learning Python a little
> I have however encountered a strange (for me anyway) scoping problem.
> Here is my implementation of linear search as a method in a class,
> hence all the self's (self.sequence is the sorted sequence we are
> searching in and value is, well, the value we are searching for):
> def linearSearch(self, value, index = None):
> if not index:
> index = 0
> if self.sequence[index] == value:
> return index
> self.linearSearch(value, index + 1)
> except IndexError:
> return -1
> My problem is that this method always returns None regardless of
> whether the value was found or not. If I put print statements in
> there, all the values and indices are printed correctly though.
> Actually I have another parameter to this method called debug, if
> this is set, the single comparison steps are printed to STDOUT
> (omitted above to avoid clutter).
> What am I doing wrong?
> Many thanks in advance,
More information about the Python-list