如何输出单词PYTHON的分数

如何输出单词PYTHON的分数,python,sorting,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),

您好,我有一个程序,它将所有的值都分配给一个字母,但我不知道如何编写程序来使用这些值计算单词的分数

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")
干杯

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))

如果没有空格或字典中找不到的任何字符,则可以正常工作,否则您将得到
类型错误

如果答案包含非字母字符(此类字符的总分为0),此操作也有效:


像ABE这样的词等于20吗?你能举例说明你想做什么吗?为了达到这个目的,你尝试了什么?例如car=15(10+2+3),ABE等于20。这就是我试图通过这个项目实现的目标。要根据每个字母的值将单词转换成一个值,如果这个或任何答案已经解决了你的问题,请考虑通过点击复选标记来接受它。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。
score = sum(letterpoints.get(c, 0) for c in response.upper())