Comment vérifier si une chaîne ne contient que des chiffres en Python

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si une chaîne de caractères ne contient que des chiffres en Python. Le laboratoire explore les chaînes de chiffres et présente la méthode isdigit(), une fonction intégrée de Python qui détermine si tous les caractères d'une chaîne sont numériques (0-9).

Vous allez créer un fichier Python, digit_strings.py, et utiliser la méthode isdigit() pour tester des chaînes ne contenant que des chiffres et des chaînes contenant des caractères non numériques. En exécutant le script avec différents exemples de chaînes, vous observerez la sortie True ou False, ce qui démontrera comment identifier efficacement les chaînes de chiffres en Python.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") subgraph Lab Skills python/strings -.-> lab-559568{{"Comment vérifier si une chaîne ne contient que des chiffres en Python"}} python/conditional_statements -.-> lab-559568{{"Comment vérifier si une chaîne ne contient que des chiffres en Python"}} python/for_loops -.-> lab-559568{{"Comment vérifier si une chaîne ne contient que des chiffres en Python"}} python/build_in_functions -.-> lab-559568{{"Comment vérifier si une chaîne ne contient que des chiffres en Python"}} end

Explorer les chaînes de chiffres

Dans cette étape, vous allez apprendre à propos des chaînes de chiffres en Python et à les identifier. Une chaîne de chiffres est simplement une chaîne qui ne contient que des caractères numériques (0-9). Python propose une méthode intégrée appelée isdigit() qui vous permet de vérifier facilement si une chaîne ne contient que des chiffres.

Tout d'abord, créons un fichier Python nommé digit_strings.py dans votre répertoire ~/project en utilisant l'éditeur VS Code.

## Create a string containing only digits
digit_string = "12345"

## Use the isdigit() method to check if the string contains only digits
is_digit = digit_string.isdigit()

## Print the result
print(is_digit)

Enregistrez le fichier. Maintenant, exécutons le script en utilisant la commande python :

python ~/project/digit_strings.py

Vous devriez voir la sortie suivante :

True

Cela indique que la chaîne digit_string ne contient que des chiffres.

Maintenant, essayons avec une chaîne qui contient des caractères non numériques :

## Create a string containing digits and letters
non_digit_string = "123abc"

## Use the isdigit() method to check if the string contains only digits
is_digit = non_digit_string.isdigit()

## Print the result
print(is_digit)

Remplacez le contenu de digit_strings.py par le code ci-dessus et enregistrez-le. Exécutez le script à nouveau :

python ~/project/digit_strings.py

Vous devriez voir la sortie suivante :

False

Cela indique que la chaîne non_digit_string contient des caractères qui ne sont pas des chiffres.

Utiliser la méthode isdigit()

Dans l'étape précédente, vous avez appris les bases des chaînes de chiffres et à utiliser la méthode isdigit(). Dans cette étape, nous allons explorer plus en détail la méthode isdigit() et voir comment elle peut être utilisée avec différents types de chaînes.

La méthode isdigit() est une méthode de chaîne en Python qui renvoie True si tous les caractères de la chaîne sont des chiffres, et False dans le cas contraire. C'est un outil simple mais puissant pour valider les entrées utilisateur ou traiter des données qui ne devraient contenir que des nombres.

Continuons à utiliser le fichier digit_strings.py dans votre répertoire ~/project. Nous allons modifier le script pour tester la méthode isdigit() avec diverses chaînes.

Tout d'abord, testons avec une chaîne vide :

## Create an empty string
empty_string = ""

## Use the isdigit() method to check if the string contains only digits
is_digit = empty_string.isdigit()

## Print the result
print(is_digit)

Remplacez le contenu de digit_strings.py par le code ci-dessus et enregistrez-le. Exécutez le script à nouveau :

python ~/project/digit_strings.py

Vous devriez voir la sortie suivante :

False

Une chaîne vide ne contient aucun chiffre, donc isdigit() renvoie False.

Ensuite, testons avec une chaîne ne contenant que des espaces :

## Create a string containing only spaces
space_string = "   "

## Use the isdigit() method to check if the string contains only digits
is_digit = space_string.isdigit()

## Print the result
print(is_digit)

Remplacez le contenu de digit_strings.py par le code ci-dessus et enregistrez-le. Exécutez le script à nouveau :

python ~/project/digit_strings.py

Vous devriez voir la sortie suivante :

False

Une chaîne ne contenant que des espaces n'est pas considérée comme une chaîne de chiffres, donc isdigit() renvoie False.

Enfin, testons avec une chaîne contenant des chiffres Unicode :

## Create a string containing Unicode digits
unicode_digit_string = "一二三" ## These are Chinese numerals

## Use the isdigit() method to check if the string contains only digits
is_digit = unicode_digit_string.isdigit()

## Print the result
print(is_digit)

Remplacez le contenu de digit_strings.py par le code ci-dessus et enregistrez-le. Exécutez le script à nouveau :

python ~/project/digit_strings.py

Vous devriez voir la sortie suivante :

False

La méthode isdigit() ne renvoie True que pour les chiffres ASCII (0-9), pas pour les autres caractères Unicode représentant des nombres.

Vérifier la présence de caractères non numériques

Dans cette étape, vous allez apprendre à identifier si une chaîne contient des caractères non numériques. Bien que la méthode isdigit() soit utile pour vérifier si tous les caractères sont des chiffres, il peut arriver que vous ayez besoin de savoir s'il y a au moins un caractère non numérique présent.

Nous pouvons réaliser cela en parcourant la chaîne et en vérifiant chaque caractère individuellement. Modifions le fichier digit_strings.py dans votre répertoire ~/project pour implémenter cela.

def has_non_digit(input_string):
  """
  Checks if a string contains any non-digit characters.
  """
  for char in input_string:
    if not char.isdigit():
      return True  ## Found a non-digit character
  return False  ## No non-digit characters found


## Test cases
string1 = "12345"
string2 = "123abc"
string3 = "  123"

print(f"'{string1}' has non-digit characters: {has_non_digit(string1)}")
print(f"'{string2}' has non-digit characters: {has_non_digit(string2)}")
print(f"'{string3}' has non-digit characters: {has_non_digit(string3)}")

Remplacez le contenu de digit_strings.py par le code ci-dessus et enregistrez-le. Maintenant, exécutons le script en utilisant la commande python :

python ~/project/digit_strings.py

Vous devriez voir la sortie suivante :

'12345' has non-digit characters: False
'123abc' has non-digit characters: True
'  123' has non-digit characters: True

Dans ce script, nous définissons une fonction has_non_digit() qui parcourt chaque caractère de la chaîne d'entrée. Si elle trouve un caractère qui n'est pas un chiffre en utilisant not char.isdigit(), elle retourne immédiatement True. Si la boucle se termine sans avoir trouvé de caractères non numériques, elle retourne False.

Cette approche vous permet de déterminer rapidement si une chaîne contient des caractères qui ne sont pas des chiffres, ce qui peut être utile pour la validation de données et d'autres tâches.

Résumé

Dans ce laboratoire (lab), vous avez exploré comment vérifier si une chaîne ne contient que des chiffres en Python. Vous avez appris qu'une chaîne de chiffres ne se compose que de caractères numériques (0-9) et que Python fournit la méthode intégrée isdigit() pour une identification facile.

Vous avez pratiqué l'utilisation de la méthode isdigit() avec des chaînes ne contenant que des chiffres, qui renvoyait True, et des chaînes contenant des caractères non numériques, qui renvoyait False. Cela a démontré la capacité de la méthode à valider les chaînes et à déterminer si elles sont entièrement composées de chiffres.