Skip to content Skip to sidebar Skip to footer

.find() Function In Python Isn't Working

I've just written this to test out the .find() function in python 2.7 but it doesn't seem to work. My syntax looks right but i cant figure out why it's not working. s=raw_input('Pl

Solution 1:

Your boolean and use of .find() are both wrong.

First, if you and together '24' and 'England' you just get 'England':

>>> '24'and'England''England'

That is because both strings are True in a Python sense so the right most is the result from and. So when you use s.find('24' and 'England') you are only searching for 'England'

The .find() returns the index of the substring -- -1 if not found which is also True in a Python sense:

>>> bool(-1)
True

And .find() could return the index 0 for a string that starts with the target string yet, in a boolean sense, 0 is False. So in this case you would incorrectly think that string was not found.

The correct operator to test for presence or membership testing in Python is in:

>>>s='I am 24 and live in England'>>>'24'in s and'England'in s
True

You can write your if statement that way, or more idiomatically, to test more than one condition, use all (for and) or any (for or) with in:

>>> all(e in s for e in ('24','England'))
True>>> any(e in s for e in ('France','England'))
True>>> all(e in s for e in ('France','England'))
False

Then you can seamlessly add conditions in the future rather than change your code.

Solution 2:

Find does not return a boolean, it returns the starting index of the found value. If the value can't be found, it returns -1.

s=raw_input('Please state two facts about yourself')

if s.find('24') >=0and s.find ('England') >= 0:
    print'are you Jack Wilshere?'else:
    print'are you Thierry Henry?'

https://www.tutorialspoint.com/python/string_find.htm

Solution 3:

You need to use s.count() or s.find() != -1: on each: England and 24

if s.find('24' and 'England'):  # it's a number which is always true hence your code is failing

Post a Comment for ".find() Function In Python Isn't Working"