如何输出单词PYTHON的分数

时间:2016-01-04 14:37:29

标签: python sorting

您好我有一个程序,其中所有值都分配给一个字母,但我无法弄清楚如何编写程序来使用这些值来计算单词的分数

import random
import operator

print("welcome to the letter game challenge")
response=input("enter a word")

print(format(response)) # prints the word you have entered


letterpoints = { "E":(1),
                 "A":(2),
                 "R":(3),
                 "I":(4), #values for each number as shown "i" = 4
                 "O":(5),
                 "T":(6),
                 "N":(7),
                 "S":(8), # values for each number again "s" = 4
                 "L":(9),
                 "C":(10),
                 "U":(11),
                 "D":(12),
                 "P":(13),
                 "M":(14),
                 "H":(15),
                 "G":(16),
                 "B":(17),
                 "F":(18),
                 "Y":(19),
                 "W":(20),
                 "K":(21),
                 "V":(22),
                 "X":(23),
                 "Z":(24),
                 "J":(25),
                 "Q":(26),
}

sorted(letterpoints.items(), key=operator.itemgetter(1), reverse=True) #sorts lettervalues from high to low
sort = sorted(letterpoints.items(), key=operator.itemgetter(1), reverse=True) #sort function
print(letterpoints)# prints values for letters
print("if you wish to see these results from high to low enter sort")

欢呼声。

2 个答案:

答案 0 :(得分:0)

import random
import operator
print("welcome to the letter game challenge")
response=input("enter a word:\n")
print(format(response)) # prints the word you have entered


letterpoints = { "E":(1),
                 "A":(2),
                 "R":(3),
                 "I":(4),#values for each number as shown "i" = 4
                 "O":(5),
                 "T":(6),
                 "N":(7),
                 "S":(8),# values for each number again "s" = 4
                 "L":(9),
                 "C":(10),
                 "U":(11),
                 "D":(12),
                 "P":(13),
                 "M":(14),
                 "H":(15),
                 "G":(16),
                 "B":(17),
                 "F":(18),
                 "Y":(19),
                 "W":(20),
                 "K":(21),
                 "V":(22),
                 "X":(23),
                 "Z":(24),
                 "J":(25),
                 "Q":(26),
}

response = response.upper()
total = 0
for letter in response:
    total += letterpoints.get(letter)

print('your score is {}'.format(total))
如果您的字典中没有空格或任何字符,则

将正常工作,否则您将获得TypErrror

答案 1 :(得分:0)

如果答案包含非字母字符(这样的字符在总和中得分为0),这也有效:

score = sum(letterpoints.get(c, 0) for c in response.upper())