Comment vérifier si une chaîne de caractères contient des caractères spéciaux 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 labo (LabEx), vous apprendrez à vérifier si une chaîne de caractères contient des caractères spéciaux en Python. Cela implique de définir ce qui constitue un caractère spécial, puis d'utiliser différentes méthodes pour détecter leur présence dans une chaîne de caractères.

Le labo vous guide tout au long de la définition des caractères spéciaux en utilisant le module string et des définitions personnalisées. Vous explorerez ensuite des méthodes telles que les expressions régulières et la fonction str.isalnum() pour identifier les chaînes de caractères contenant ces caractères spéciaux. À la fin de ce labo, vous disposerez des connaissances nécessaires pour gérer efficacement les caractères spéciaux dans vos programmes Python.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/AdvancedTopicsGroup -.-> python/regular_expressions("Regular Expressions") subgraph Lab Skills python/strings -.-> lab-559570{{"Comment vérifier si une chaîne de caractères contient des caractères spéciaux en Python"}} python/conditional_statements -.-> lab-559570{{"Comment vérifier si une chaîne de caractères contient des caractères spéciaux en Python"}} python/function_definition -.-> lab-559570{{"Comment vérifier si une chaîne de caractères contient des caractères spéciaux en Python"}} python/importing_modules -.-> lab-559570{{"Comment vérifier si une chaîne de caractères contient des caractères spéciaux en Python"}} python/standard_libraries -.-> lab-559570{{"Comment vérifier si une chaîne de caractères contient des caractères spéciaux en Python"}} python/regular_expressions -.-> lab-559570{{"Comment vérifier si une chaîne de caractères contient des caractères spéciaux en Python"}} end

Définir les caractères spéciaux

Dans cette étape, vous apprendrez à définir les caractères spéciaux en Python. Les caractères spéciaux sont des caractères qui ne sont pas alphanumériques (lettres ou chiffres). Ils incluent des symboles tels que des signes de ponctuation, des espaces et d'autres caractères non standard. Identifier et gérer ces caractères est crucial pour des tâches telles que le nettoyage des données, la validation et le traitement de texte.

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

## Content of define_special_characters.py
import string

special_characters = string.punctuation
print("Special characters:", special_characters)

Voici ce que fait ce code :

  1. import string : Cette ligne importe le module string, qui fournit une collection de constantes de chaînes de caractères, y compris une chaîne prédéfinie de caractères de ponctuation courants.
  2. special_characters = string.punctuation : Cette ligne assigne la chaîne de caractères de ponctuation de string.punctuation à la variable special_characters.
  3. print("Special characters:", special_characters) : Cette ligne affiche la valeur de la variable special_characters dans la console, accompagnée d'une étiquette descriptive.

Maintenant, exécutons le script. Ouvrez votre terminal et exécutez la commande suivante :

python define_special_characters.py

Vous devriez voir la sortie suivante :

Special characters: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

Cette sortie montre la chaîne de caractères spéciaux définie dans la constante string.punctuation.

Vous pouvez également définir votre propre ensemble de caractères spéciaux. Par exemple, modifions le script pour inclure des espaces et quelques symboles supplémentaires.

Ouvrez define_special_characters.py dans VS Code et modifiez-le comme suit :

## Modified content of define_special_characters.py
special_characters = "!@#$%^&*()_+=-`~[]\{}|;':\",./<>?" + " "
print("Special characters:", special_characters)

Dans ce script modifié, nous avons créé une chaîne contenant une combinaison de symboles et un espace.

Exécutez le script à nouveau :

python define_special_characters.py

Vous devriez voir la sortie suivante :

Special characters: !@#$%^&*()_+=-`~[]{}|;':",./<>?

Cette sortie montre l'ensemble personnalisé de caractères spéciaux que vous avez défini.

Comprendre comment définir et identifier les caractères spéciaux est une compétence fondamentale en programmation Python. Dans les étapes suivantes, vous apprendrez à utiliser les expressions régulières et la méthode isalnum() pour travailler plus efficacement avec les caractères spéciaux.

Utiliser les expressions régulières

Dans cette étape, vous apprendrez à utiliser les expressions régulières en Python pour identifier les caractères spéciaux. Les expressions régulières sont des outils puissants pour la correspondance de motifs dans les chaînes de caractères.

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

## Content of regex_special_characters.py
import re

def find_special_characters(text):
    special_characters = re.findall(r"[^a-zA-Z0-9\s]", text)
    return special_characters

text = "Hello! This is a test string with some special characters like @, #, and $."
special_chars = find_special_characters(text)

print("Special characters found:", special_chars)

Voici ce que fait ce code :

  1. import re : Cette ligne importe le module re, qui fournit des opérations d'expressions régulières.
  2. def find_special_characters(text): : Cela définit une fonction qui prend une chaîne de caractères en entrée et trouve tous les caractères spéciaux dans celle-ci.
  3. special_characters = re.findall(r"[^a-zA-Z0-9\s]", text) : Cette ligne utilise la fonction re.findall() pour trouver tous les caractères dans la chaîne d'entrée qui ne sont pas alphanumériques (a - z, A - Z, 0 - 9) ou des espaces blancs (\s). Le [^...] est une classe de caractères négative, ce qui signifie qu'elle correspond à n'importe quel caractère n'étant pas dans l'ensemble spécifié.
  4. return special_characters : Cette ligne retourne une liste des caractères spéciaux trouvés.
  5. Les lignes suivantes définissent une chaîne d'exemple, appellent la fonction pour trouver les caractères spéciaux dans celle-ci et affichent le résultat.

Maintenant, exécutons le script. Ouvrez votre terminal et exécutez la commande suivante :

python regex_special_characters.py

Vous devriez voir la sortie suivante :

Special characters found: ['!', '@', ',', '#', '$', '.']

Cette sortie montre la liste des caractères spéciaux trouvés dans la chaîne d'entrée en utilisant l'expression régulière.

Modifions le script pour utiliser une autre expression régulière qui ne correspond qu'aux caractères de ponctuation.

Ouvrez regex_special_characters.py dans VS Code et modifiez-le comme suit :

## Modified content of regex_special_characters.py
import re
import string

def find_punctuation_characters(text):
    punctuation_chars = re.findall(r"[" + string.punctuation + "]", text)
    return punctuation_chars

text = "Hello! This is a test string with some punctuation like ., ?, and !."
punctuation = find_punctuation_characters(text)

print("Punctuation characters found:", punctuation)

Dans ce script modifié, nous avons utilisé string.punctuation pour définir l'ensemble des caractères de ponctuation à correspondre.

Exécutez le script à nouveau :

python regex_special_characters.py

Vous devriez voir la sortie suivante :

Punctuation characters found: ['!', '.', '?', '!']

Cette sortie montre la liste des caractères de ponctuation trouvés dans la chaîne d'entrée en utilisant l'expression régulière et la constante string.punctuation.

L'utilisation des expressions régulières offre un moyen flexible et puissant d'identifier et d'extraire les caractères spéciaux des chaînes de caractères en Python.

Vérifier avec str.isalnum()

Dans cette étape, vous apprendrez à utiliser la méthode str.isalnum() en Python pour vérifier si un caractère est alphanumérique (c'est-à-dire une lettre ou un chiffre). Cette méthode est un moyen simple et efficace d'identifier les caractères spéciaux en vérifiant si un caractère n'est pas alphanumérique.

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

## Content of isalnum_check.py
def check_special_character(char):
    if not char.isalnum():
        return True
    else:
        return False

test_characters = ['a', '1', '!', ' ']

for char in test_characters:
    if check_special_character(char):
        print(f"'{char}' is a special character.")
    else:
        print(f"'{char}' is an alphanumeric character.")

Voici ce que fait ce code :

  1. def check_special_character(char): : Cela définit une fonction qui prend un seul caractère en entrée.
  2. if not char.isalnum(): : Cette ligne vérifie si le caractère n'est pas alphanumérique en utilisant la méthode isalnum(). La méthode isalnum() retourne True si le caractère est une lettre ou un chiffre, et False sinon. Le mot-clé not inverse le résultat, donc la condition est True si le caractère n'est pas alphanumérique.
  3. Les lignes suivantes définissent une liste de caractères de test et parcourent cette liste, en appelant la fonction pour vérifier si chaque caractère est un caractère spécial et en affichant le résultat.

Maintenant, exécutons le script. Ouvrez votre terminal et exécutez la commande suivante :

python isalnum_check.py

Vous devriez voir la sortie suivante :

'a' is an alphanumeric character.
'1' is an alphanumeric character.
'!' is a special character.
' ' is a special character.

Cette sortie montre le résultat de la vérification de chaque caractère de la liste en utilisant la méthode isalnum().

Modifions le script pour vérifier une chaîne de caractères pour les caractères spéciaux.

Ouvrez isalnum_check.py dans VS Code et modifiez-le comme suit :

## Modified content of isalnum_check.py
def find_special_characters(text):
    special_chars = []
    for char in text:
        if not char.isalnum() and not char.isspace():
            special_chars.append(char)
    return special_chars

test_string = "Hello! This is a test string with some special characters like @, #, and $."
special_characters = find_special_characters(test_string)

print("Special characters found:", special_characters)

Dans ce script modifié, nous avons défini une fonction qui parcourt une chaîne de caractères et vérifie chaque caractère pour voir s'il n'est pas alphanumérique et n'est pas un caractère d'espace blanc.

Exécutez le script à nouveau :

python isalnum_check.py

Vous devriez voir la sortie suivante :

Special characters found: ['!', '@', ',', '#', '$', '.']

Cette sortie montre la liste des caractères spéciaux trouvés dans la chaîne d'entrée en utilisant la méthode isalnum().

L'utilisation de la méthode isalnum() offre un moyen simple et efficace d'identifier les caractères spéciaux en Python.

Résumé

Dans ce laboratoire (lab), vous avez appris à définir les caractères spéciaux en Python. Cela impliquait d'importer le module string et d'utiliser la constante string.punctuation pour accéder à une chaîne prédéfinie de caractères de ponctuation courants. Vous avez également exploré comment définir votre propre ensemble personnalisé de caractères spéciaux en concaténant des symboles spécifiques et des espaces dans une chaîne.

Le laboratoire a démontré comment afficher ces ensembles de caractères spéciaux définis dans la console pour vérification. Ce processus est crucial pour des tâches telles que le nettoyage des données, la validation et le traitement de texte, où l'identification et la gestion des caractères non alphanumériques sont essentielles.