回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<div>
</div>
<p>我尝试使用递归函数编写字符串匹配程序。函数首先创建一个名为tuple1的空列表来添加点。然后返回列表。但是,当我尝试使用此函数两次时,该函数会将点添加到在上一个函数中创建的列表中。为什么函数在第二次调用中不使用默认值tuple1=[]呢?有什么想法吗</p>
<p>程序的输出:</p>
<p>[0,3,5,9,11,12,15,19]</p>
<p>[0,3,5,9,11,12,15,19,0,5,15]</p>
<p>顺便说一句,这是麻省理工学院共享的开放式课程的作业</p>
<pre><code>def subStringMatchExact(target, key, counter=0, tuple1=[]):
if len(target) < len(key):
return tuple1
else:
counter += 1
if target[:len(key)] == key:
tuple1.append(counter-1)
return subStringMatchExact(target[1:], key, counter, tuple1)
print(subStringMatchExact("atgacatgcacaagtatgcat", "a"))
print(subStringMatchExact("atgacatgcacaagtatgcat", "atg"))
</code></pre>