Python:如何打印字符串中的最后X字符?我的代码有什么问题并不总是有效?

Ros*_*nda 0 python string indexing

我需要在给定的字符串中打印上次遇到特定字符时的位置.我该怎么办?即.对于这个字符串"alahambra",我需要找到字母"a"的最后一次出现,所以结果应该是:8.

我试过这段代码,但它并不总是有效:

def find_last(search, target):
    first=search.find(search)
    last=len(search)
    result=search.find(target,last-1)
    return result   
Run Code Online (Sandbox Code Playgroud)

例子:

print find_last('aaaaa','aa')

应该打印3,它打印-1而不是,这是错误的!

print find_last('aaaa','b')

应该打印-1,它打印-1,这是正确的.

print find_last("111111111","1")

应打印8,打印8,这是正确的.

print find_last("222222222","")

应该打印9,而它打印8,而不是!

print find_last("","3")

应该打印-1,它打印-1,这是正确的.

print find_last("","")

应该打印0,它打印0,这是正确的.

我的代码有什么问题,我该如何更改?谢谢!

zha*_*gyu 6

>>> "alahambra".rindex('a')
8
>>> 
Run Code Online (Sandbox Code Playgroud)

如果找不到子字符串,这将引发错误.rfind在这种情况下,使用将返回-1.

>>> "alahambra".rfind('a')
8
>>> 
>>> ''.rfind('b')
-1
>>> 
Run Code Online (Sandbox Code Playgroud)