def main():
string = raw_input("string:")
pattern = raw_input("pattern:")
end = len(string)
recursiveinsertPattern(string,pattern)
def recursiveinsertPattern(string, pattern):
if len(string) == 1:
return ""
else:
print string[0]+pattern+recursiveinsertPattern(string[1:],pattern),
所以我需要输出
*h*e*l*l*o*
如果字符串输入为hello
且模式输入为*
。但是在尝试添加最后一次运行时我收到此错误:
TypeError:无法连接' str'和' NoneType'对象
答案 0 :(得分:0)
原因是你的函数recursiveinsertPattern
只返回""如果len(string) == 1
,则为None
。
我会修改此函数,使其看起来像这样:
def recursiveinsertPattern(string, pattern):
if len(string) == 1:
return ""
else:
return string[0]+pattern+recursiveinsertPattern(string[1:],pattern)
print
main()
此函数的结果
答案 1 :(得分:0)
您希望将其返回,而不是打印recursiveinsertPattern
的结果。错误是因为您没有为recursiveinsertPattern
返回值。你想要:
def main():
string = raw_input("string:")
pattern = raw_input("pattern:")
end = len(string)
print recursiveinsertPattern(string,pattern)
def recursiveinsertPattern(string, pattern):
if len(string) == 1:
return ""
else:
return string[0]+pattern+recursiveinsertPattern(string[1:],pattern),
答案 2 :(得分:0)
同时更改条件..而不是1
将其更改为0
,以便包含最后一个字符..只需复制并粘贴此代码段
def recursiveinsertPattern(string, pattern):
if len(string) == 0:
return ""
else:
return string[0]+pattern+recursiveinsertPattern(string[1:],pattern)