回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在用python学习递归。我写了一个程序,但它不能正常工作。我是python的初学者。我有两个函数<strong>scrabbleScore()</strong>和<strong>letterScore()</strong>。<strong>scrabbleScore()</strong>调用<strong>letterscore()</strong>以及自身。这是我的代码:</p>
<pre><code>def letterScore( let ):
if let in ['a','e','i','l','n','o','r','s','t','u']:
return 1
elif let in ['d','g']:
return 2
elif let in ['b','c','m','p']:
return 3
elif let in ['f','h','v','w','y']:
return 4
elif let=='k':
return 5
elif let in ['j','x']:
return 8
elif let in ['q','z']:
return 10
else:
return 0
p = 0
def scrabbleScore( S ):
if S == "":
return 0
else:
global p
p=p+letterScore(S[0])
scrabbleScore(S[1:])
return p
print "scrabbleScore('quetzal'): 25 ==", scrabbleScore('quetzal')
print "scrabbleScore('jonquil'): 23 ==", scrabbleScore('jonquil')
print "scrabbleScore('syzygy'): 25 ==", scrabbleScore('syzygy')
print "scrabbleScore('abcdefghijklmnopqrstuvwxyz'): 87 ==", scrabbleScore('abcdefghijklmnopqrstuvwxyz')
print "scrabbleScore('?!@#$%^&*()'): 0 ==", scrabbleScore('?!@#$%^&*()')
print "scrabbleScore(''): 0 ==", scrabbleScore('')
</code></pre>