Re: shouldn't 'string'.find('ugh') return 0, not -1 ?



On Wed, 2007-10-31 at 13:31 +0000, jelle wrote:
the subject pretty much says it all.
if I check a string for for a substring, and this substring isn't found,
should't the .find method return 0 rather than -1?
this breaks the

if check.find('something'):
do(somethingElse)

idiom, which is a bit of a pity I think.

You're using the wrong tool for the job. You only care *whether* the
substring is in the string, but you're asking *where* it is, so you have
to do extra work to translate the answer you get into the answer you
need.

To ask the right question in the first place, use "in" or "not in":

if 'something' in check:
do(somethingElse)

Also, if string.find returned 0 to say "substring not found", what
should it return for "spam salad".find("spam")?

HTH,

--
Carsten Haese
http://informixdb.sourceforge.net


.



Relevant Pages

  • Re: [QUIZ] Longest Repeated Substring (#153)
    ... My hack at the substring problem is based on suffix ... in the original string. ... def initialize ...
    (comp.lang.ruby)
  • Favicon type detection - possible?
    ... this is my cobbled together browser detection ... {string: navigator.userAgent, ... subString: "OmniWeb", ... {// for newer Netscapes ...
    (comp.lang.javascript)
  • Comments on Comments (was Re: Getting to 100 (#119))
    ... # yield each partitioning of the receiver into count partitions ... # an initial substring of increasing length, ... # the string into count-1 partitions. ... #:ops - an array of strings representing the operators to be inserted into ...
    (comp.lang.ruby)
  • Re: Computability and logic
    ... as regards a mathematical formulation of a substring ... substring in a string with another substring? ... result of substituting a term for a variable in a formula'. ... As I recall, he doesn't get into replacing term for term, ...
    (sci.logic)
  • Re: "Reversed" LCS problem
    ... have to worry so much about defining "substring" versus "subsequence," ... say "the letters in the string must be next to each other, ... >> has the lowest number of common characters from the other strings, ... > No whitespaces, no sequences, only substrings. ...
    (comp.programming)