Python中文
首页
教程
问答
标签
搜索
登录
注册
在递归函数中保持计数?[杰森]
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我试图用递归函数计算字母“x”在字符串中出现的次数。我的函数目前这样做,但是我希望只有一个参数(字符串)。当函数在返回行中迭代时,我很难创建一个不被覆盖的计数器。在</p> <p>为了说明我的意思:<br/></p> <pre><code>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) </code></pre> <blockquote> <p>xCounter("gfljkgfxlkjsfxxljsx")</p> <blockquote> <p>0</p> </blockquote> </blockquote> <p>到目前为止,我让它工作的唯一方法是将counter定义为一个参数:</p> ^{pr2}$ <blockquote> <p>xCounter("werixiuewrxiewx",0)</p> <blockquote> <p>3</p> </blockquote> </blockquote> <p>有谁能给我一些关于如何在这个函数中保持count而不重写count或将count定义为参数的一些见解吗?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我想你这样做是为了练习递归,而不是为了实际的解决方案,对吧?在python中正确的方法是</p> <pre><code>count = "gfljkgfxlkjsfxxljsx".count('x') print count </code></pre> <p>但是,您的代码在每次迭代时都会重置计数器,这是正确的。在</p> <p>有一些方法(比如全局变量)来跟踪计数器而不将其用作参数,但这是坏的坏的坏的。额外的参数是正确的方法。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
pyVISA GPIB GET(组执行触发器)
2 回答
Pyvisa IOerror设备:Korad K3005d电源
1 回答
PyVISA mac OS X(山狮)安捷伦33250
5 回答
Pyvisa Pyusb无法加载大于1 MB的序列
2 回答
pyVisa RS232太慢
7 回答
PyVISA RS232超时错误(安捷伦电源)
10 回答
PyVISA SCPI命令和查询(值更新问题)
9 回答
PyVISA SerialInstrument需要硬重置才能在故障后连接
9 回答
pyvisa,未找到函数viOpen
1 回答
pyVISA:以编程方式将仪器返回到本地模式
7 回答
pyvisa:接口类型是什么意思?
9 回答
pyvisa.errors.VisaIOError:VI_ERROR_TMO(1073807339):操作完成前超时
3 回答
PyVisa“更复杂的示例”根本不运行Keithley 2400不理解的命令
4 回答
PyVisapy后端
4 回答
PyVISA不能写入超过7F的十六进制字符
2 回答
PYVISA中的ENUM模块和cStringIO模块
9 回答
PyVisa代码的图形用户界面
7 回答
Pyvisa使用按键电源超时
3 回答
PyVISA和Kethley 2701只能从一个通道获取结果
1 回答
PyVisa和Printing New D
3 回答