[python] poker problème avec les strings
AwwA
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
sebsauvage Messages postés 33415 Statut Modérateur -
sebsauvage Messages postés 33415 Statut Modérateur -
voila j'ai crée une fonction qui a pour but de suprimer les lettres dans une chaine .
mon but est de transformer cette chaine
['9s', '9d', '10h', '9c', '8h', '13s', '3d']
en
['9', '9', '10', '9', '8', '13', '3']
voila mon programme
mais il me donne
[None, None, None, None, None, None]
ce qui n'est pas tres pratique !
merci
mon but est de transformer cette chaine
['9s', '9d', '10h', '9c', '8h', '13s', '3d']
en
['9', '9', '10', '9', '8', '13', '3']
voila mon programme
def w(liste):
if liste.count('h')>0:
print liste.replace("h","",10)
if liste.count('s')>0:
print liste.replace("s","",10)
if liste.count('d')>0:
print liste.replace("d","",10)
if liste.count('c')>0:
print liste.replace("c","",10)
def z(liste):
wow=[]
i=0
while i<6:
wow=wow+[w(liste)]
i=i+1
return wow
mais il me donne
[None, None, None, None, None, None]
ce qui n'est pas tres pratique !
merci
A voir également:
- [python] poker problème avec les strings
- Citizen code python - Accueil - Outils
- Boyaa texas poker - Télécharger - Cartes
- Mot secret python pix ✓ - Forum Python
- Programme python ✓ - Forum Python
- Telecharger zynga poker - Télécharger - Cartes
3 réponses
Ce ne sont pas des print qu'il te faut, ta fonction doit retourner la chaine et non pas l'afficher:
def w(liste):
if liste.count('h')>0:
liste= liste.replace("h","",10)
if liste.count('s')>0:
liste= liste.replace("s","",10)
if liste.count('d')>0:
liste= liste.replace("d","",10)
if liste.count('c')>0:
liste= liste.replace("c","",10)
return liste
Une solution plus pythonique
Voir par exemple
http://docs.python.org/tut/node7.html#SECTION007130000000000000000
root@osiris ~/src
$ cat cut.py
#!/usr/bin/python
def chop(aString) :
return aString[0 : -1]
# on suppose que aString n'est ni None ni vide
avar = ['9s', '9d', '10h', '9c', '8h', '13s', '3d']
result = map(chop , avar)
print result
root@osiris ~/src
$ python cut.py
['9', '9', '10', '9', '8', '13', '3']
Voir par exemple
http://docs.python.org/tut/node7.html#SECTION007130000000000000000
Si c'est pour garder uniquement les chiffres, peut aussi utiliser isdigit() qui indique si un caractère est un chiffre ou non:
#!/usr/bin/python
def keepDigits(chaine):
return ''.join([c for c in chaine if c.isdigit()])
avar = ['9s', '9d', '10h', '9c', '8h', '13s', '3d']
result = map(keepDigits , avar)
print result