nmkolev at uni-bonn.de
Thu Aug 5 13:42:11 CEST 2004
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:
self.linearSearch(value, index + 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