Section 7.20 Optional parameters
To find the locations of the second or third occurrence of a character in a string, we can modify the
find
function, adding a third parameter for the starting position in the search string:The call
find2('banana', 'a', 2)
now returns 3
, the index of the first occurrence of ‘a’ in ‘banana’ after index 2. What does find2('banana', 'n', 3)
return? If you said, 4, there is a good chance you understand how find2
works. Try it.Better still, we can combine
find
and find2
using an optional parameter.The call
find3('banana', 'a', 2)
to this version of find
behaves just like find2
, while in the call find3('banana', 'a')
, start
will be set to the default value of 0
.Adding another optional parameter to
find
makes it search from a starting position, up to but not including the end position.The optional value for
end
is interesting. We give it a default value None
if the caller does not supply any argument. In the body of the function we test what end
is and if the caller did not supply any argument, we reassign end
to be the length of the string. If the caller has supplied an argument for end
, however, the caller’s value will be used in the loop.The semantics of
start
and end
in this function are precisely the same as they are in the range
function.