gpt4 book ai didi

Python:切片:类型错误:无法连接 'str' 和 'int' 对象

转载 作者:行者123 更新时间:2023-11-30 23:30:24 27 4
gpt4 key购买 nike

我正在尝试编写一个模块,用于搜索目标字符串中的关键字符串并输出任何匹配的起点。我可以编写一个迭代模块来实现此目的,但我试图通过递归来实现这一点(我在本课中使用的教程涉及递归和迭代,所以我认为我应该尝试两者)并遇到一些麻烦。

def substringmatchrecursive(target, key):
"""returns a tuple of the starting points of matches of the key string in the target string using a recursive function"""
from string import find
position = find(target, key) #position of the match
answer=() #will be outputted
if position == -1:
return 'No match'
else:
while position != 1:
answer = answer + (position, )
position = substringmatchrecursive(target[position+1: ], key)
return answer

加载模块并进入

substringmatchrecursive("fjdkakfjdslkfajfksja", "a")

这应该给我一个长度为 3 的元组,但却给我一个错误

Traceback (most recent call last):
.....
position = substringmatchrecursive(target[position+1: ], key)

TypeError: cannot concatenate 'str' and 'int' objects

我假设 find() 会输出一个整数,因此 position+1 应该可以工作。这是怎么回事?

最佳答案

根据以下代码,如果没有找到键,substringmatchrecursive将返回str对象('No match')。

if position == -1:
return 'No match'

并且该 str 对象被分配给 position:

position = substringmatchrecursive(target[position+1: ], key)
<小时/>

使函数一致地返回元组。 (应相应调整 while 循环中使用的谓词,或者如果您想要递归,则 while 应该消失,...)。

并对位置使用不同的名称以避免名称冲突。

关于Python:切片:类型错误:无法连接 'str' 和 'int' 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20603985/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com