因此,所讨论的代码是一个非常基本的拼字游戏得分计算器。这在CodeCademy网站上是一个挑战。
它们定义的正确代码如下,您可以看到有一个嵌套的for循环,该循环在整个词典中搜索 word 中的每个字母:< / p>
score = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2,
"f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3,
"l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1,
"r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4,
"x": 8, "z": 10}
def scrabble_score(word):
word = word.lower()
total = 0
for letter in word:
for leter in score:
if letter == leter:
total = total + score[leter]
return total
我对Python来说还比较陌生,但是据我了解,for循环应该可以如下工作,它可以循环遍历 word 变量中的每个字母,并将其用作输入得分词典,然后将其添加到总计。如您所见,然后返回 total 。
def scrabble_score(word):
word = word.lower()
total = 0
for letter in word:
total = total + score[letter]
return total
但是,CodeCademy说那是错误的。有人可以请我解释一下我想念的东西吗?
欢呼
答案 0 :(得分:1)
您的代码似乎正确且经过优化,请添加try / catch块,以防万一!
def scrabble_score(word):
word = word.lower()
total = 0
for letter in word:
try:
total += score[letter]
except KeyError, e:
print "Error: Letter {} is missing from the score".format(e)
return total
答案 1 :(得分:0)
您的答案似乎并不正确。它按预期执行。在这种情况下,CodeAcademy接受的答案可能是限制性的。