=== bytes.find === Help on method_descriptor: find(...) B.find(sub[, start[, end]]) -> int Return the lowest index in B where substring sub is found, such that sub is contained within s[start:end]. Optional arguments start and end are interpreted as in slice notation. Return -1 on failure. === bytes.rfind === Help on method_descriptor: rfind(...) B.rfind(sub[, start[, end]]) -> int Return the highest index in B where substring sub is found, such that sub is contained within s[start:end]. Optional arguments start and end are interpreted as in slice notation. Return -1 on failure. === bytearray.find === Help on method_descriptor: find(...) B.find(sub[, start[, end]]) -> int Return the lowest index in B where subsection sub is found, such that sub is contained within s[start,end]. Optional arguments start and end are interpreted as in slice notation. Return -1 on failure. === bytearray.rfind === Help on method_descriptor: rfind(...) B.rfind(sub[, start[, end]]) -> int Return the highest index in B where subsection sub is found, such that sub is contained within s[start,end]. Optional arguments start and end are interpreted as in slice notation. Return -1 on failure. === str.find === Help on method_descriptor: find(...) S.find(sub[, start[, end]]) -> int Return the lowest index in S where substring sub is found, such that sub is contained within s[start:end]. Optional arguments start and end are interpreted as in slice notation. Return -1 on failure. === str.rfind === Help on method_descriptor: rfind(...) S.rfind(sub[, start[, end]]) -> int Return the highest index in S where substring sub is found, such that sub is contained within s[start:end]. Optional arguments start and end are interpreted as in slice notation. Return -1 on failure.