【发布时间】:2012-06-21 07:21:40
【问题描述】:
我正在尝试删除字符串中大括号之间的所有内容,并尝试以递归方式执行此操作。
当递归结束时,我在这里返回x,但不知何故,函数doit在这里返回None。尽管在 def 中打印 x 会打印正确的字符串。
我做错了什么?
strs = "i am a string but i've some {text in brackets} braces, and here are some more {i am the second one} braces"
def doit(x,ind=0):
if x.find('{',ind)!=-1 and x.find('}',ind)!=-1:
start=x.find('{',ind)
end=x.find('}',ind)
y=x[start:end+1]
x=x[:start]+x[end+1:]
#print(x)
doit(x,end+1)
else:
return x
print(doit(strs))
输出:None
【问题讨论】:
-
我注意到这是一种非常糟糕的做法,但我认为这是一个编程练习,因为“我正在尝试以递归方式进行”声明。
-
@Lattyware 是的!我试图通过这个来解决一个 SO 问题。
标签: python python-3.x return-value