Bonjour,
Nouveau ici mais après avoir parcouru la forum, il me semble qu c’est pas mal du tout ! Entre les cours et le forum, je devrais avoir de la ressource pour mon petit niveau de code. Mais voilà, ça bloque déjà, j’en appelle à cotre aide.
Je cherche à faire une petit logiciel pour créer des tableaux de tournoi de ping.
J’ai donc 2 class (pour le moment), une Joueur et la Main
Dans Joueur.py, j’initialise les joueurs puis crée un dictionnaire avec 4 valeurs : prenom, nom, classement, club. Dans la Main.py, je crée mes joueurs et range les dictionnaires de joueurs dans un tableau. Je cherche à trier ce tableau par la valeur classement des dictionnaires. Et la… c’est le drame.
Joueurs.py
class Joueur:
""" definir joueur"""
def __init__(self,prenom, nom,classement,club):
self.prenom = prenom
self.nom = nom
self.classement = classement
self.club = club
def show_joueur():
tableau_joueur = {}
#print(" prenom :",self.prenom," nom :",self.nom, "classement :" ,self.classement," club :",self.club)
tableau_joueur["prenom"] = self.prenom
tableau_joueur["nom"] = self.nom
tableau_joueur["classement"] = self.classement
tableau_joueur["club"] = self.club
Et Main.py
from Joueur import Joueur
index_joueur = []
joueur1 = Joueur('damien', 'toto', 707, 'CAP')
joueur2 = Joueur('pierre', 'xeon', 652, 'bully')
joueur3 = Joueur('nico', 'pourpre', 1145, 'ecomoy')
index_joueur.append(joueur1)
index_joueur.append(joueur2)
index_joueur.append(joueur3)
index_joueur = sorted(tableau_joueur, key=lambda tri: tri['classement'])
for i in range(len(index_joueur)):
print("index", i,
", prenom:", index_joueur[i].prenom,
", nom:", index_joueur[i].nom,
", classement:", index_joueur[i].classement,
", club:", index_joueur[i].club, )
ca me retourne:
NameError: name 'tableau_joueur' is not defined
Sans la method sorted, ma boucle me sort bien mon tableau avec mes valeur. C’est elle qui pose problème je pense. Il ne s’agit peut-être que d’une mauvaise formulation ou de manque de getter, bref, un peu paumé. Merci de votre aide.
Damien aka la padawan de service.