python:强制转换为upper并查找字符串

时间:2010-07-28 23:15:36

标签: python

我被困在这条线上:

row[1].upper().find('CELEBREX',1)(这是返回-1

似乎找不到CELEBREX,即使它在那里

row[1] = 'celebrex, TRAMADOL'

我是否错误地向UPPER投了?

3 个答案:

答案 0 :(得分:4)

find()的第二个参数不应该是1,因为它会在字符串的第一个字符后开始搜索

>>> s = 'celebrex, TRAMADOL'
>>> print s.upper().find('CELEBREX')
0

Find()将返回0,因为它找到了位置0的第一个匹配项,即字符串中的第一个位置。因此,重要的是要注意,正如您已经发现的那样,if find()找不到字符串,它将返回-1。返回值0实际上是匹配。

答案 1 :(得分:2)

upper()似乎很好,但发现却没有。你想在字符串的开头找到(不是偏移)。

row[1].upper().find('CELEBREX')

答案 2 :(得分:1)

您正在从第二个字母1开始搜索,即e:

row=("",'celebrex, TRAMADOL')
print row[1].upper().find('CELEBREX',1)
print row[1][1:]
"""Output:
-1
elebrex, TRAMADOL
"""