Weird Function Return Value?
I am trying to remove everything between curly braces in a string, and trying to do that recursivesly. And I am returning x here when the recursion is over, but somehow the functio
Solution 1:
You never return anything if the if
block succeeds. The return
statement lies in the else
block, and is only executed if everything else isn't. You want to return the value you get from the recursion.
if x.find('{', ind) != -1 and x.find('}', ind) != -1:
...
return doit(x, end+1)
else:
return x
Solution 2:
...
#print(x)
doit(x,end+1)
...
should be
...
#print(x)
return doit(x,end+1)
...
You are missing the return
statement in the if block. If the function is calls itself recursively, it doesn't return the return value of that call.
Solution 3:
Note that it is easier to use regular expressions:
import re
strs = "i am a string but i've some {text in brackets} braces, and here are some more {i am the second one} braces"
strs = re.sub(r'{.*?}', '', strs)
Post a Comment for "Weird Function Return Value?"