Python 为什么我会遇到这个关键错误?
我正在尝试编写一个函数,它使用Python字典来计算英语单词的拼字分数。我就快到了,但我不断地犯下恼人的错误: 代码如下:Python 为什么我会遇到这个关键错误?,python,dictionary,Python,Dictionary,我正在尝试编写一个函数,它使用Python字典来计算英语单词的拼字分数。我就快到了,但我不断地犯下恼人的错误: 代码如下: d = {"0":'blank', "1":'A, E, I, L, N, O, R, S, T, U', "2":'D, G', "3":'B, C, M, P', "4":'F, H, V, W, Y', "5":'K', "8":'J, X', "10":'Q, Z',} w = input("
d = {"0":'blank',
"1":'A, E, I, L, N, O, R, S, T, U',
"2":'D, G',
"3":'B, C, M, P',
"4":'F, H, V, W, Y',
"5":'K',
"8":'J, X',
"10":'Q, Z',}
w = input("enter a word")
def scrab(w): #define function
tot = 0
w.upper()
for key in w:
tot = tot + d[key]
return tot
scrab(w)
print(tot, w)
输出:
Traceback (most recent call last):
File "C:/Users/Bola42/Downloads/IsaiahSLab13Dictionary.py", line 65, in <module>
scrab(w)
File "C:/Users/Bola42/Downloads/IsaiahSLab13Dictionary.py", line 58, in scrab
tot = tot + d[key]
KeyError: ' '
回溯(最近一次呼叫最后一次):
文件“C:/Users/Bola42/Downloads/isaahslab13dictionary.py”,第65行,在
紧急停车位(西)
文件“C:/Users/Bola42/Downloads/isaahslab13dictionary.py”,第58行,scrab格式
tot=tot+d[键]
密钥错误:“”
帮帮忙?发生了什么事?您将键和值向后移动。您正在使用分数作为字典中的键,使用字符串作为值。此外,您没有在输入值上使用
strip()
,因此您只处理附带的空格而不是字母字符。您有一个字符串到字符串的dict。最好创建一个类似于映射的字符串/字符,并将其转换为如下所示的整数值。为了简单起见,我使用您的dictd
:
wmap = {}
for key, val in d.items():
for val in val.split(", "):
newKey = val.strip()
wmap[newKey] = int(key)
这将产生以下结果:
{'blank': 0,
'A': 1,
'E': 1,
'I': 1,
'L': 1,
'N': 1,
'O': 1,
'R': 1,
'S': 1,
'T': 1,
'U': 1,
'D': 2,
'G': 2,
'B': 3,
'C': 3,
'M': 3,
'P': 3,
'F': 4,
'H': 4,
'V': 4,
'W': 4,
'Y': 4,
'K': 5,
'J': 8,
'X': 8,
'Q': 10,
'Z': 10}
更新scrab()
如下:
def scrab(w):
tot = 0
w = w.upper()
for key in w:
print(key)
tot = tot + wmap[str(key)]
return tot
希望这有帮助 您正在尝试查找空白作为字典键。 清理并去除用户输入中的空白
还有一个问题;您正在迭代抛出一个字符串并在字典键中查找每个字母。但是你的字典有数字键。 尝试使用以下形式的词典:
拼字字母值={
“A”:1,
“B”:3,
“C”:3,
“D”:2,
“E”:1,
“F”:4,
“G”:2,
“H”:4,
"一":,
“J”:8,
“K”:5,
“L”:1,
“M”:3,
“N”:1,
“O”:1,
“P”:3,
“问题”:10,
“R”:1,
“S”:1,
“T”:1,
“U”:1,
“V”:4,
“W”:4,
“X”:8,
“Y”:4,
“Z”:10,
}
让我们知道是什么输入导致了错误?“紧急停堆”功能也不清楚?你能详细解释一下为什么你需要一个循环吗?在标题中要有更多的描述性,写一个标题来总结具体的问题。另外,更好地介绍这个问题和最少的示例也会有所帮助。