私はpythonでプログラムを書いています。これは、各レベルで最高得点のプレーヤーを返すはずですが、69行目の "KeyError:20"(P_L1 = players_TS [ H_L1])、これを修正する方法を考えることができません。
月、3,15
StarPlayer、2,18
エリー、5,9
など
ここでは私です:私のコードでは、私はこのようにフォーマットされた「playerScores.txt」と呼ばれるテキストファイルを開きますコード:
私のpythonプログラムは "KeyError:20"を返し続けます。
print("The highest scorers for each leve are:\n")
PS3=open("PlayerScores.txt","r").read().split("\n")
level1_scores=[]
players_TS={}
level2_scores=[]
players_T2={}
level3_scores=[]
players_T3={}
level4_scores=[]
players_T4={}
level5_scores=[]
players_T5={}
for line in PS3:
lines=line.split(",")
player=lines[0]
level=lines[1]
score=lines[2]
erros=open("scoreboard_errorlog.text","w")
if int(score)>20:
errors.write(score)
if int(level)>5:
errors.write(level)
if int(level)==1:
level1_scores.append(int(score))
players_TS.setdefault(score,[]).append(player)
if int(level)==2:
level2_scores.append(int(score))
players_T2.setdefault(score,[]).append(player)
if int(level)==3:
level3_scores.append(int(score))
players_T3.setdefault(score,[]).append(player)
if int(level)==4:
level4_scores.append(int(score))
players_T4.setdefault(score,[]).append(player)
if int(level)==5:
level5_scores.append(int(score))
players_T5.setdefault(score,[]).append(player)
H_L1=max(level1_scores)
P_L1=players_TS[H_L1]
H_L2=max(level2_scores)
P_L2=players_T2[H_L2]
H_L3=max(level3_scores)
P_L3=players_T3[H_L3]
H_L4=max(level4_scores)
P_L4=players_T4[H_L4]
H_L5=max(level5_scores)
P_L5=players_T5[H_L5]
print("Level\tPlayer name\tScore\nLevel 1\t",P_L1,"\t",H_L1,"\nLevel 2\t",P_L2,"\t",H_L2,"\nLevel 3\t",P_L3,"\t",H_L3,"\nLevel 4\t",P_L4,"\t",H_L4,"\nLevel 5\t",P_L5,"\t",H_L5)
ヘルプははるかに高く評価されます。
エラーの発生場所を特定することから始めます。 –
'erros = open(..'と 'errors.write(...'はtypoです。) –
@ScottHunter指定するのを忘れて申し訳ありません - 69行目(P_L1 = players_TS [H_L1]) –