我只是在学习Python,所以这可能非常简单。我试图在字典中找到与键匹配的值并将它们相加。我已经编写了找到这些值的代码,并且可以打印出来(在在线Python Tutor中测试了一下,看看会发生什么),但是我不知道如何将其作为总得分来返回正确的分数(6)。我知道这不是一个函数。在
SCRABBLE_LETTER_VALUES = {
'a': 1, 'b': 3, 'c': 3, 'd': 2, 'e': 1, 'f': 4, 'g': 2, 'h': 4, 'i': 1, 'j': 8, 'k': 5, 'l': 1, 'm': 3, 'n': 1, 'o': 1, 'p': 3, 'q': 10, 'r': 1, 's': 1, 't': 1, 'u': 1, 'v': 4, 'w': 4, 'x': 8, 'y': 4, 'z': 10
}
word ='tact'
score =0
for i in range(len(word)):
for letter,score in SCRABBLE_LETTER_VALUES.items():
if letter == word[i]:
print score
这里:
for l in word
迭代word
的字母SCRABBLE_LETTER_VALUES[l]
获取{sum(...)
将它们相加。在sum()
中的构造称为generator expression。在如果我是你,我会用这段代码:
还有更有效的方法,例如NPE提到的方法,但是如果您只是一个初学者,我更希望使用(并理解)这种方法。在
以上代码的作用,逐行:
1)首先我们使用
^{pr2}$for
-循环来迭代word
中的每个字母:2)对于每个字母,我们将
score
变量递增SCRABBLE_LETTER_VALUES
中定义的相应数量,如下所示:使用
+=
可以更容易地编写:3)最后打印分数:
相关问题 更多 >
编程相关推荐