Exercice 60
Écrire un algorithme en python qui prend en entrée une chaîne 's' et qui renvoie la liste des caractères numériques contenus dans la chaîne 's'.
Exemple: si s = 'Python 3.0, sorti en 2008 et complètement révisé en 2020',
la fonction renvoie la liste: [3, 0, 2, 0, 0, 8, 2, 0, 2, 0]
Solution
1ère méthode: à l'aide de la méthode isdigit()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
def caracteres_numeriques(s): # La liste digits est initialisée vide digits = [] # parcourt des caractères de la chaîne s for c in s: # on test si le caractère est numérique # si c'est le cas, il est ajouté à la liste digits sous forme d'entier if c.isdigit(): digits.append(int(c)) return digits # tester l'algorithme s = "Python 3.0, sorti en 2008 et complètement révisé en 2020" print(caracteres_numeriques(s)) """ Output: [3, 0, 2, 0, 0, 8, 2, 0, 2, 0] """ |
2ème méthode: à l'aide de la méthode isnumeric()
1 2 3 4 5 6 7 8 9 10 11 |
def caracteres_numeriques(s): digits = [] for c in s: if c.isnumeric(): digits.append(int(c)) return digits # tester l'algorithme s = "Python 3.0, sorti en 2008 et complètement révisé en 2020" print(caracteres_numeriques(s)) #Output: [3, 0, 2, 0, 0, 8, 2, 0, 2, 0] |
Différence entre les deux méthodes isdigit() et isnumeric()
Les méthodes isnumeric() et isdigit() sont deux méthodes de la classe str en Python qui permettent de vérifier si une chaîne de caractères contient des caractères numériques. Cependant, elles ont des différences subtils:
- La méthode isdigit(): renvoie True si tous les caractères de la chaîne sont des chiffres décimaux (0 à 9). Elle ne considère pas les autres caractères numériques tels que les nombres romains, les fractions, les exposants, etc. comme des chiffres.
- La méthode isnumeric(): renvoie True si tous les caractères de la chaîne représentent une valeur numérique, y compris les chiffres décimaux (0 à 9), les nombres romains, les fractions, les exposants, etc. Elle considère tous les caractères qui peuvent être interprétés comme des nombres comme des caractères numériques.
Younes Derfoufi
CRMEF OUJDA
1 thought on “Solution Exercice 60: algorithme python permettant d'extraire la liste des caractères numériques d'une chaine”