IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Réalisation et affichage d'un classement [débutant]


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Réalisation et affichage d'un classement [débutant]
    Bonjour,

    je suis actuellement débutant en Python et je cherche à afficher le classement (Top 10) d'un jeu.
    J'ai créé une fonction pour que le nom du joueur et son score s'enregistre dans un fichier texte (sur une ligne) à chaque fin de partie.

    Cependant je ne parvient pas à afficher le top 10 de ce classement (trier) dans la console python.

    Mon code enregistre les scores dans un fichier .txt de la manière suivante :
    Joueur score \n ce qui donne :

    nom_joueur1 56.0
    nom_joueur2 87.5
    nom_joueur3 10.8
    ...

    Il me faudrait récupérer ces données sous forme de liste, puis les trier par scores décroissants et les afficher avec le nom du joueur correspondant.

    Merci de votre aide

    Cordialement

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    scores = [
                ('nom_joueur1', 56.0),
                ('nom_joueur2', 87.5),
                ('nom_joueur3', 10.8)
    ]
     
     
    result = sorted(scores, key=lambda sc: sc[1])
     
     
    print(result)
    Voici un lien pour apprendre...
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci pour le lien je parviens à classer des données de type tuple, cependant je ne parvient justement pas à mettre mes données sous forme de tuple:
    Le fichier txt est sous forme :

    nom_joueur1 56.0
    nom_joueur2 87.5
    nom_joueur3 10.8

    je peux le récupérer sous forme de liste avec

    f=open(classement.txt)
    liste1=list(f)

    Mais le résultat me donne une liste de la forme [nom_joueur1 56.0\n, nom_joueur2 87.5\n,...]
    alors que je veux quelque chose du type :

    scores = [
    ('nom_joueur1', 56.0),
    ('nom_joueur2', 87.5),
    ('nom_joueur3', 10.8)
    ]

    Merci de votre aide

    Cordialement

  4. #4
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par Pal_Python Voir le message
    Mais le résultat me donne une liste de la forme [nom_joueur1 56.0\n, nom_joueur2 87.5\n,...]
    alors que je veux quelque chose du type :

    scores = [
    ('nom_joueur1', 56.0),
    ('nom_joueur2', 87.5),
    ('nom_joueur3', 10.8)
    ]

    Merci de votre aide

    Cordialement
    Coucou,

    Si ce qui est obtenu est de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ["nom_joueur1 56.0\n", "nom_joueur2 87.5\n",...]
    il n'est pas compliqué, même pour un débutant (voire même, un grand débutant) de le transformer en liste de tuple!
    Un premier pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> lst0 = [score.split() for score in scores]
    >>> lst0
    [['nom_joueur1', '56.0'], ['nom_joueur2', '87.5']]
    Il semble que, potentiellement, la lecture d'un tutoriel Python serait d'une valeur non négligeable.
    (Du genre de ceux localisés sur une page spéciale intitulée: TUTORIELS PYTHON)

    Clodion

Discussions similaires

  1. Réalisation Puzzle, affichage
    Par shaytan dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 03/01/2010, 16h47
  2. [EasyPHP] Affichage de fichier php (débutant)
    Par YLYES dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 24/03/2007, 19h15
  3. [SQL] Réaliser un affichage de données avec possibilité de modification
    Par Adrien93 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 03/11/2006, 00h07
  4. [MySQL] Réaliser un affichage d'articles vieux de 15 jours et à venir (90 jours)
    Par slim dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 23/10/2006, 15h53
  5. [MFC] Réaliser l'affichage d'un oscilloscope
    Par Racailloux dans le forum MFC
    Réponses: 7
    Dernier message: 04/03/2005, 00h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo