Scope Problem
Nickolay Kolev
nmkolev at uni-bonn.de
Thu Aug 5 07:42:11 EDT 2004
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
better.
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
try:
if self.sequence[index] == value:
return index
else:
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,
Nicky
More information about the Python-list
mailing list