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()).
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é.
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 :
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).
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.
Python c'est bon, mangez-en.