[python] comment simplifier une fonction
Résolu
AwwA
-
AwwA -
AwwA -
Bonjour,
je viens de creer une fonction qui marche bien mon seul soucis c'est que elle est bien longue et qu'il m'en reste
d'autre plus complexe encore
elle prend ce type de liste ['07h', '14c', '07c', '14d', '02c', '04s', '09d']
et retourne 1 si elle voit une paire et la paire en question
merci beaucoup
je viens de creer une fonction qui marche bien mon seul soucis c'est que elle est bien longue et qu'il m'en reste
d'autre plus complexe encore
def paire(main): listeP=main #0 a=list(listeP[0]) #1 b=list(listeP[1]) #2 c=list(listeP[2]) #3 d=list(listeP[3]) #4 e=list(listeP[4]) #5 f=list(listeP[5]) #6 g=list(listeP[6]) wow=[] if a[0:2]==b[0:2]: wow=main[0],main[1] return 1,wow if a[0:2]==c[0:2]: wow=main[0],main[2] return 1,wow if a[0:2]==d[0:2]: wow=main[0],main[3] return 1,wow if a[0:2]==e[0:2]: wow=main[0],main[4] return 1,wow if a[0:2]==f[0:2]: wow=main[0],main[5] return 1,wow if a[0:2]==g[0:2]: wow=main[0],main[6] return 1,wow if b[0:2]==c[0:2]: wow=main[1],main[2] return 1,wow if b[0:2]==d[0:2]: wow=main[1],main[3] return 1,wow if b[0:2]==e[0:2]: wow=main[1],main[4] return 1,wow if b[0:2]==f[0:2]: wow=main[1],main[5] return 1,wow if b[0:2]==g[0:2]: wow=main[1],main[6] return 1,wow if c[0:2]==d[0:2]: wow=main[2],main[3] return 1,wow if c[0:2]==e[0:2]: wow=main[2],main[4] return 1,wow if c[0:2]==f[0:2]: wow=main[1],main[5] return 1,wow if c[0:2]==g[0:2]: wow=main[1],main[6] return 1,wow if d[0:2]==e[0:2]: wow=main[3],main[4] return 1,wow if d[0:2]==f[0:2]: wow=main[3],main[5] return 1,wow if d[0:2]==g[0:2]: wow=main[3],main[6] return 1,wow if e[0:2]==f[0:2]: wow=main[4],main[5] return 1,wow if e[0:2]==g[0:2]: wow=main[4],main[6] return 1,wow if f[0:2]==g[0:2]: wow=main[5],main[6] return 1,wow
elle prend ce type de liste ['07h', '14c', '07c', '14d', '02c', '04s', '09d']
et retourne 1 si elle voit une paire et la paire en question
merci beaucoup
A voir également:
- [python] comment simplifier une fonction
- Fonction si et - Guide
- Citizen code python avis - Accueil - Outils
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
1 réponse
Ceci est plus compact, plus lisible moins "error prone":
Tu peux rendre ce code plus objet, changer la taille de la main pour les martiens et les jolies vénusiennes jouant au poker etc... Bon amusement.
Johan
#!/usr/bin/python def getPairs(aHand): pairs=[] for c1 in range(0,7): for c2 in range(c1 + 1, 6 -c1): if aHand[c1][0:2] == aHand[c2][0:2]: pairs.append((c1,c2)) return pairs myHand = ['07h', '14c', '07c', '14d', '02c', '04s', '09d'] result = getPairs(myHand) for aPair in result : print "A pair found %s %s" % (myHand[aPair[0]] , myHand[aPair[1]])
Tu peux rendre ce code plus objet, changer la taille de la main pour les martiens et les jolies vénusiennes jouant au poker etc... Bon amusement.
Johan
AwwA
merci beaucoup ,je pensais pas que on pouvait la rendre aussi courte !