L'indentation est significative en python, et lire un paté de code mal formatté ça ne donne pas très envie. Je te conseille déjà de lire l'Aide mémoire sur la syntaxe wiki situé sous le champ de rédaction de message. Le dernier exemple indique comment inclure du code (remplace ruby par python pour avoir la coloration syntaxique appropriée).
defQUINTE(main):""" permet de savoir si la main est une quinte ou non """a=[(7,8,9,10,11),(8,9,10,11,12),(9,10,11,12,13),(10,11,12,13,14)]b=sorted(main)forkinrange(len(a)):ifb==a[k:k+4]:return1else:return0
C'est plus facile à lire, n'est-ce pas ?
Bon, à partir de ça, on voit que tu as tout de même listé les suites possible, que tu tentes de boucler dessus... Sans savoir ce que contient main, c'est difficile de déduire le comportement. Ensuite si tu veux boucler sur les différentes suites possibles contenues dans a, tu peux faire for k in a pour itérer sur tous les n-uplets de la liste a.
La notation la plus lisible et rapide reste néanmoins de te débrouiller pour avoir dans b un n-uplet trié correspondant à ta main, comme (9, 10, 11, 12, 13), puis de remplacer ta boucle par return b in a. L'opérateur in renvoie True si b est inclus dans a (c'est à dire que a contient b), et False sinon. Ainsi tu évites une boucle inutile, et tu utilises des types booléens qui sont faits pour ça plutôt que 0 et 1.
[^] # Re: quinte
Posté par liberforce (site web personnel, Mastodon) . En réponse au message POKER :determiner si une main est une couleur ou non. Évalué à 2. Dernière modification le 31 août 2018 à 10:31.
L'indentation est significative en python, et lire un paté de code mal formatté ça ne donne pas très envie. Je te conseille déjà de lire l'Aide mémoire sur la syntaxe wiki situé sous le champ de rédaction de message. Le dernier exemple indique comment inclure du code (remplace
rubyparpythonpour avoir la coloration syntaxique appropriée).C'est plus facile à lire, n'est-ce pas ?
Bon, à partir de ça, on voit que tu as tout de même listé les suites possible, que tu tentes de boucler dessus... Sans savoir ce que contient
main, c'est difficile de déduire le comportement. Ensuite si tu veux boucler sur les différentes suites possibles contenues dansa, tu peux fairefor k in apour itérer sur tous les n-uplets de la listea.La notation la plus lisible et rapide reste néanmoins de te débrouiller pour avoir dans
bun n-uplet trié correspondant à ta main, comme(9, 10, 11, 12, 13), puis de remplacer ta boucle parreturn b in a. L'opérateurinrenvoieTruesibest inclus dansa(c'est à dire queacontientb), etFalsesinon. Ainsi tu évites une boucle inutile, et tu utilises des types booléens qui sont faits pour ça plutôt que 0 et 1.