我正在学习Python,我试图在没有len()
的情况下解决这个问题,但我仍然陷入困境。这是测验说明。
定义一个过程 find_last,它将作为输入 两个字符串,一个搜索字符串和一个目标字符串, 并返回搜索字符串中的最后一个位置 目标字符串出现的位置,如果存在则为 -1 没有出现。
示例:find_last('aaaa', 'a') 返回 3
确保您的程序有返回语句。
这是我的代码:
def find_last(search, target):
target = search.find(target)
while target:
if target == -1:
return target
else:
return target +1
return target
谢谢。
最佳答案
您有几个错误需要修复:
target
是目标字符串,而不是找到它的位置。您正在覆盖该值。- 您可能需要多次调用
search.find
- 只有在
search.find
返回 -1 时才能跳出循环。然后,您的函数应返回search.find
返回的前一个值。
解决每个问题都会给您带来好处
def find_last(search, target):
# Find the first occurrence of target
pos = search.find(target)
# If you found something, keep looking for it until you don't
# find it again
while pos >= 0:
# You found target once; now look for the next occurrence
next_pos = search.find(target, pos + 1)
if next_pos == -1:
# no more targets, so stop looking
break
pos = next_pos
return pos
您还可以使用return pos
代替break
。
正如评论中所指出的,search.rfind(target)
已经做了你想要的事情。
关于python - 在Python中查找最后一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49720776/