开发者

why python find not working [duplicate]

This question already has answers here: Why is "None" printed after my function's output? (7 answers) Closed 3 years ago.

i am using python 2.5.2. The following code not working.

def findValue(self, text, findText):
     index = text.find(findText)
     print index

Although the findText is present in text, but it still returns None.

I have printed the values of text and findText and they are present.

Edit: I have fixed the issue.

The problem was i am calling code like

for i in arr:
      self.findValue(i,"someText")

As type of i is insta开发者_开发问答nce so this does not work. I have just changed it to:

self.findValue(str(i),"someText")


You aren't returning a value from your function, you are only printing it. This means that the return value for the function will be None.

Try adding return indexat the end of your code.

def myfind(self, text, findText):
     index = text.find(findText)
     return index


Python doesn't automatically return the last variable, you need to explicitly use return index

And If the .find is failing, it should return -1 instead of None, So most probably, problem is in your return part, not in the .find


I have fixed the issue.

The problem was i am calling code like

for i in arr: 
      self.findValue(i,"someText") 

As type of i is instance so this does not work. I have just changed it to:

self.findValue(str(i),"someText") 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜