我被困在这条线上:
row[1].upper().find('CELEBREX',1)
(这是返回-1
)
似乎找不到CELEBREX,即使它在那里
row[1] = 'celebrex, TRAMADOL'
我是否错误地向UPPER投了?
答案 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
"""