Partage
  • Partager sur Facebook
  • Partager sur Twitter

Saut de ligne énervante.

Sujet résolu
    18 octobre 2020 à 15:50:11

    Bonjour tout le monde,

    J'ai ce programme : 

    def mois(t_uple):
        long = len(t_uple)
        liste_mois = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre"]
        Tab = []
        for i in range(12):
            c = 0
            for j in range(long):
                if t_uple[j]["mois"] == i+1:
                    c = c + 1
            Tab.append(liste_mois[i])
            Tab.append(c)
        return Tab

    J'ai cette tuple :

    eleves = (
                {"nom":"Clément","jour": 18, "mois" : 7, "année" : 2002}, {"nom":"Jade","jour": 2, "mois" : 2, "année" : 2003},
                {"nom":"Zoé","jour": 12, "mois" : 1, "année" : 2002}, {"nom":"Lucas","jour": 13, "mois" : 7, "année" : 2001},
                {"nom":"Maxime","jour": 15, "mois" : 3, "année" : 2002}, {"nom":"Louise","jour": 30, "mois" : 4, "année" : 2001},
                {"nom":"Quentin","jour": 16, "mois" : 6, "année" : 2001}, {"nom":"Suzy","jour": 13, "mois" : 12, "année" : 2002},
                {"nom":"Théo","jour": 23, "mois" : 4, "année" : 2001}, {"nom":"Gautier","jour": 28, "mois" : 8, "année" : 2002},
                {"nom":"Héloïse","jour": 12, "mois" : 9, "année" : 2001}, {"nom":"Albert","jour": 18, "mois" : 1, "année" : 2002},
                {"nom":"Matthieu","jour": 4, "mois" : 3, "année" : 2001}, {"nom":"Enzo","jour": 30, "mois" : 11, "année" : 2000},
                {"nom":"Rémi","jour": 3, "mois" : 9, "année" : 2002}, {"nom":"Antoine","jour": 17, "mois" : 1, "année" : 2002},
                {"nom":"Chloé","jour": 28, "mois" : 11, "année" : 2001}, {"nom":"Mélanie","jour": 7, "mois" : 5, "année" : 2001},
                {"nom":"Anthony","jour": 5, "mois" : 12, "année" : 2002}, {"nom":"Yanis","jour": 3, "mois" : 9, "année" : 2001},
                {"nom":"Mélody","jour": 26, "mois" : 7, "année" : 2001}, {"nom":"Raphaël","jour": 27, "mois" : 10, "année" : 2002},
                {"nom":"Emma","jour": 11, "mois" : 10, "année" : 2002}, {"nom":"Joris","jour": 13, "mois" : 5, "année" : 2001}
               )

    Voici mon problème quand j'exécute mon programme pour cette tuple il m'affiche ceci dans la console :

    >>> mois(eleves)
    ['Janvier',
     3,
     'Février',
     1,
     'Mars',
     2,
     'Avril',
     2,
     'Mai',
     2,
     'Juin',
     1,
     'Juillet',
     3,
     'Aout',
     1,
     'Septembre',
     3,
     'Octobre',
     2,
     'Novembre',
     2,
     'Décembre',
     2]

    Comme vous pouvez le constater j'ai des saut de ligne tout le temps alors que je ne veux pas de saut de ligne je ne sais pas d'où vient le souci donc si vous pouvez m'aider sa serait très sympa.
    Merci à tout ceux qui aideront.



    -
    Edité par Kyghte 18 octobre 2020 à 15:51:06

    • Partager sur Facebook
    • Partager sur Twitter
      18 octobre 2020 à 18:37:28

      Je pense que ton problème ne vient pas de ton programme, mais de ton IDE (environnement de développement) car, j'ai copier coller ton programme et il m'affiche le résultat sans saut de ligne.

      -
      Edité par ebdm13 18 octobre 2020 à 18:38:26

      • Partager sur Facebook
      • Partager sur Twitter
        18 octobre 2020 à 19:16:25

        Ah, alors merci je ferme ce sujet merci.
        • Partager sur Facebook
        • Partager sur Twitter
          19 octobre 2020 à 9:23:20

          Il serait mieux que ta fonction retourne un dictionnaire.

          Et de mettre les noms de mois en constante. Exemple :

          # On met None à l'indice zéro car il n'y a pas de mois zéro
          MOIS = [None, "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre"]
          
          
          def mois(t_uple):
              result = {MOIS[i]: 0 for i in range(1, 13)}
              for dico in t_uple:
                  result[MOIS[dico["mois"]]] += 1
              return result

          Tu devrais aussi trouver un autre nom pour t_uple.

          Et collections.Counter pourrait t'intéresser (pour faire directement result = Counter() ligne 6)

          • Partager sur Facebook
          • Partager sur Twitter

          Saut de ligne énervante.

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown