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
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 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()
Le message d'erreur:
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()
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
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
Partager