bonjour j'ai creer un programme python me permettant d'enregistrer et d'imprimer quand voulu le tableau des scores 5 en l'occurence ecrire a la fin du jeu et pouvoir le lire apres avoir enregistrer ce score petit probleme c est un programme que j'ai trouver sur internet il est dans l'ensemble bien je pense mais il y avais un probleme de tri voici le code que j ai pu trouver sur internet mais qui trie je trouve mal
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import pickle
import os
global high_scores
 
def setup_scores():
    global high_scores
    high_scores = {}
 
    if os.path.isfile('highscores.pkl'):
        with open("highscores.pkl", "rb") as h:
            high_scores = pickle.load(h)
    else:
        high_scores = {"Adam Smith": 65536, "John Doe": 10000}
 
def save_score(name, score):
    new_score = (name, score)
 
    if new_score[0] in high_scores:
        if new_score[1] > high_scores[new_score[0]]:
            high_scores[new_score[0]] = new_score[1]
    else:
        high_scores[new_score[0]] = new_score[1]
 
    with open("highscores.pkl","wb") as out:
        pickle.dump(high_scores, out)
 
def print_scores():
    for name, score in high_scores.items():
        print("{{name:>{col_width}}} | {{score:<{col_width}}}".format(col_width=(80-3)//2).format(name=name, score=score))
 
setup_scores()
save_score(raw_input('Name:'), raw_input('Score:')) # inputs only for testing, can use variables instead
print_scores()
voici mon programme actuel ou j'utilise un tri comme nous ayant appris par "insertion"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import pickle
import os
global high_scores
 
def setup_scores():
    global high_scores
    high_scores = {}
 
    if os.path.isfile('highscores.pkl'):
        with open("highscores.pkl", "rb") as h:
            high_scores = pickle.load(h)
    else:
        high_scores = {"Adam Smith": 65536, "John Doe": 10000}
 
def save_score(name, score):
    new_score = (name, score)
    for i in range (1,len(high_scores)): #on precise que ces instructions vont se repeter sur la longueur de la suite
        n=high_scores[i] #selectionne l'element dans la suite
        p=i
        while p>0 and high_scores[p-1]>n:
            high_scores[p]=high_scores[p-1]
            p=p-1 # decalage des chiffres dans la suite
        if p!=i:
            high_scores[p]=n
 
    with open("highscores.pkl","wb") as out:
        pickle.dump(high_scores, out)
 
def print_scores():
    for name, score in high_scores.items():
        print("{{name:>{col_width}}} | {{score:<{col_width}}}".format(col_width=(80-3)//2).format(name=name, score=score))
 
setup_scores()
save_score(input('Name:'), input('Score:')) # inputs only for testing, can use variables instead
print_scores()
Le message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Traceback (most recent call last):
  File "C:/Python34/fichier python/highscoretest.py", line 34, in <module>
    save_score(input('Name:'), input('Score:')) # inputs only for testing, can use variables instead
  File "C:/Python34/fichier python/highscoretest.py", line 18, in save_score
    n=high_scores[i] #selectionne l'element dans la suite
KeyError: 1
ce que j'aimerai c est faire en sorte que le tri fonctionne et j'aimerai aussi changer le format du fichier de .pkl en .txt