【发布时间】:2015-07-06 23:08:12
【问题描述】:
我正在尝试使用递归函数计算字母“x”出现在字符串中的次数。我的函数目前执行此操作,但是我希望只有一个参数(字符串)。当函数在返回行中迭代时,我很难创建一个未被覆盖的计数器。
为了说明我的意思:
def xCounter(string): <br>
**counter = 0** (This resets the counter to 0 with each iteration) <br>
if len(string) == 0:
return counter
elif string[0] == 'x':
counter = counter + 1
elif string[0] != 'x':
return xCounter(string[1:],counter)
return xCounter(string[1:],counter)
xCounter("gfljkgfxlkjsfxxljsx")
0
到目前为止,我让它工作的唯一方法是将计数器定义为参数:
def xCounter(string, counter): <br>
if len(string) == 0: <br>
return counter <br>
elif string[0] == 'x': <br>
counter = counter + 1 <br>
elif string[0] != 'x': <br>
return xCounter(string[1:],counter) <br>
return xCounter(string[1:],counter) <br>
xCounter("werixiuewrxiewx",0)
3
谁能给我一些关于如何在这个函数中保持计数而不覆盖计数或将计数定义为参数的见解?
【问题讨论】: