为什么 Python find 不工作

2 投票
3 回答
7330 浏览
提问于 2025-04-15 20:50

我正在使用 python 2.5.2。下面的代码不工作。

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

虽然 findTexttext 中是存在的,但它仍然返回 None

我打印了 textfindText 的值,它们确实存在。

编辑:我已经解决了这个问题。

问题出在我调用代码的方式上:

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

因为 i 的类型是 instance,所以这样不行。我只是把它改成了:

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

3 个回答

1

Python不会自动返回最后一个变量,你需要明确地使用 return index 来返回它。

如果 .find 方法没有找到东西,它应该返回 -1,而不是 None。所以很可能问题出在你的返回部分,而不是 .find 方法。

5

你没有从你的函数中返回一个值,你只是把它打印出来。这意味着这个函数的返回值是None,也就是“没有值”。

试着在你的代码最后加上return index

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

我已经解决了这个问题。

问题出在我调用代码的方式上,像这样:

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

因为 i 的类型是实例,所以这样做不行。我只是把它改成了:

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

撰写回答