Partage
  • Partager sur Facebook
  • Partager sur Twitter

Yam's en Python

Sujet résolu
    11 décembre 2011 à 21:56:03

    Salut,

    la variable som ne s'enregistre pas tout simplement parce que tu la réinitialise à chaque tour de boucle ;) (ligne 97).
    Je vois aussi que tu as fait une fonction tri, or python en fournit déjà une pour les listes (ex: maliste.sort()).
    • Partager sur Facebook
    • Partager sur Twitter
      12 décembre 2011 à 10:20:44

      Y'a beaucoup de choses à faire pour simplifier les 40 dernières lignes de ton code.

      Déjà, les lignes 99 à 117 peuvent être intégralement remplacées dans ton code, telles qu'elles, par ceci, qui fait strictement la même chose:

      z=int(input(" Maximum de quel chiffre : 1 / 2 / 3 / 4 / 5 /6 : "))
      if 0 < z < 7 :
          print("maxi de {0} : ".format(z), maximum(liste,z))
          som=som + maximum(liste,z)
      


      Ça te fait gagner une quinzaine de lignes que tu pourrais employer à gérer les exceptions et sécuriser les entrées de l'utilisateur, par exemple…

      Du reste, si tu associes un choix à un nombre, pourquoi ne pas les stocker dans une liste, pour décider un peu plus élégamment laquelle utiliser :

      Python 3.2.2 (default, Nov 21 2011, 16:51:01) 
      [GCC 4.6.2] on linux2
      Type "help", "copyright", "credits" or "license" for more information.
      >>> def ajouter(a,b): return a+b
      ... 
      >>> def soustraire(a,b): return a-b
      ... 
      >>> def multiplier(a,b): return a*b
      ... 
      >>> fonctions = [ajouter, soustraire, multiplier]
      >>> fonctions[0](3, 2)
      5
      >>> fonctions[1](3, 2)
      1
      >>> fonctions[2](3, 2)
      6
      >>> def calculette():
      ...     op = int(input("choisir une opération (1: +, 2: -, 3:*): ")) - 1
      ...     a = int(input("première opérande: "))
      ...     b = int(input("seconde opérande: "))
      ...     return fonctions[op](a,b)
      ... 
      >>> calculette()
      choisir une opération (1: +, 2: -, 3:*): 3
      première opérande: 2
      seconde opérande: 21
      42
      


      Tu pourrais de cette façon te concentrer sur la vérification des entrées de l'utilisateur (ce que je ne fais pas du tout dans mon exemple pour qu'il reste court, note), et trouver automatiquement la fonction à appliquer sans te taper tous ces elif qui sont autant de chances de faire une erreur… Ton code serait donc beaucoup plus court, plus lisible, plus facile à étendre et plus sécurisé.
      • Partager sur Facebook
      • Partager sur Twitter
      Zeste de Savoir, le site qui en a dans le citron !
      Anonyme
        12 décembre 2011 à 18:45:36

        Dans la fonction maximum, elle sert à quoi la variable som?

        def maximum(liste, j):
            return liste.count(j)*j
        


        Pour le tri de la liste

        +1 ploulp

        def tri(liste):
            liste.sort()
            return liste
        
        • Partager sur Facebook
        • Partager sur Twitter
          12 décembre 2011 à 18:55:40

          Citation

          def tri(liste):
              liste.sort()
              return liste
          


          fonction inutile et return inutil aussi ... ^^ ben alors fred1599, tu nous as habitué à mieux ...

          une fonction juste pour appeler une méthode, j'vois pas ...
          retourner 'liste' qui est de toutes façons modifiée par la méthode j'vois pas non plus ...

          si c'est juste pour utiliser le mot 'tri' plus lisible que list.sort :

          >>> tri=list.sort
          >>> a=[2,6,3,4,1]
          >>> a
          [2, 6, 3, 4, 1]
          >>> tri(a)
          >>> a
          [1, 2, 3, 4, 6]
          >>>



          • Partager sur Facebook
          • Partager sur Twitter

          Python c'est bon, mangez-en. 

          Anonyme
            12 décembre 2011 à 19:56:25

            @josmiley

            Je sais, mais il veut franciser, on francise... :p

            • Partager sur Facebook
            • Partager sur Twitter
              12 décembre 2011 à 20:12:18

              Citation : fred1599

              Dans la fonction maximum, elle sert à quoi la variable som?

              def maximum(liste, j):
                  return liste.count(j)*j
              


              Elle est censée servir à comptabiliser les points et les renvoyer à chaque fois qu'on utilise la fonction.
              Le tout étant de sommer les différent résultats de toutes les fonctions de combinaisons : max (de 1 à 6), brelan, full, chance, suite, yams et carre, et de le renvoyer à la fin du jeu.. ^^

              --------------

              Citation : josmiley




              def tri(liste):
                  liste.sort()
                  return liste
              



              fonction inutile et return inutil aussi ... ^^ ben alors fred1599, tu nous as habitué à mieux ...

              une fonction juste pour appeler une méthode, j'vois pas ...
              retourner 'liste' qui est de toutes façons modifiée par la méthode j'vois pas non plus ...

              si c'est juste pour utiliser le mot 'tri' plus lisible que list.sort :


              >>> tri=list.sort
              >>> a=[2,6,3,4,1]
              >>> a
              [2, 6, 3, 4, 1]
              >>> tri(a)
              >>> a
              [1, 2, 3, 4, 6]
              >>>




              Merci bien, mais c'est bon, la fonction tri n'existe plus :D
              • Partager sur Facebook
              • Partager sur Twitter
                12 décembre 2011 à 20:39:44

                D'ailleurs, les variables sont passées par référence en Python, la fonction tri est donc non seulement inutile mais aussi contre-performante puisqu'elle retourne quelque chose (qui est en fait la liste modifiée).
                • Partager sur Facebook
                • Partager sur Twitter

                Yam's en Python

                × 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