1. À propos de isalnum() en Python
En Python, la méthode isalnum() permet de vérifier si une chaîne non vide contient uniquement des caractères alphanumériques, c'est-à-dire des caractères alphabétiques ou numériques reconnus par Python. Elle retourne True lorsque tous les caractères remplissent cette condition et False dans le cas contraire.
Dans l'exemple suivant, la chaîne contient uniquement des lettres et des chiffres. isalnum() retourne donc True.
1 2 3 | texte = "Python2026" resultat = texte.isalnum() print(resultat) |
Sortie :
1 | True |
Une chaîne composée uniquement de lettres est également alphanumérique au sens de isalnum(). Il n'est donc pas nécessaire qu'elle contienne simultanément des lettres et des chiffres.
1 2 | texte = "Python" print(texte.isalnum()) |
Sortie :
1 | True |
De même, une chaîne composée uniquement de caractères numériques reconnus par Python peut retourner True.
1 2 | texte = "2026" print(texte.isalnum()) |
Sortie :
1 | True |
En revanche, la présence d'un espace suffit pour que isalnum() retourne False.
1 2 | texte = "Python 2026" print(texte.isalnum()) |
Sortie :
1 | False |
2. Tester une chaîne avec isalnum()
La méthode isalnum() examine tous les caractères de la chaîne. Pour retourner True, la chaîne doit contenir au moins un caractère et chacun de ses caractères doit être alphabétique ou numérique.
Une chaîne contenant des lettres majuscules, des lettres minuscules et des chiffres satisfait cette condition.
1 2 | texte = "Python3Django5" print(texte.isalnum()) |
Sortie :
1 | True |
La méthode ne demande pas obligatoirement un mélange de lettres et de chiffres. Une chaîne exclusivement alphabétique retourne également True.
1 2 | print("Programmation".isalnum()) print("PYTHON".isalnum()) |
Sortie :
1 2 | True True |
Une chaîne constituée uniquement de chiffres retourne elle aussi True.
1 2 | print("123456".isalnum()) print("2026".isalnum()) |
Sortie :
1 2 | True True |
En revanche, la chaîne vide ne contient aucun caractère alphanumérique. isalnum() retourne donc False.
1 2 | texte = "" print(texte.isalnum()) |
Sortie :
1 | False |
3. Comprendre les caractères acceptés et refusés par isalnum()
La méthode isalnum() repose sur les propriétés Unicode des caractères. Elle ne se limite donc pas aux lettres ASCII de A à Z et aux chiffres de 0 à 9.
Les lettres accentuées
Les lettres accentuées reconnues comme alphabétiques par Python sont acceptées par isalnum().
1 2 | print("français".isalnum()) print("École2026".isalnum()) |
Sortie :
1 2 | True True |
Les espaces
Un espace n'est ni une lettre ni un caractère numérique. Une chaîne contenant un espace retourne donc False.
1 2 | print("Python2026".isalnum()) print("Python 2026".isalnum()) |
Sortie :
1 2 | True False |
Les caractères spéciaux
Les signes de ponctuation et les caractères tels que le tiret, le point ou le caractère de soulignement ne sont pas alphanumériques pour isalnum().
1 2 3 4 | print("Python-2026".isalnum()) print("Python_2026".isalnum()) print("Python.2026".isalnum()) print("Python!".isalnum()) |
Sortie :
1 2 3 4 | False False False False |
Les caractères numériques Unicode
isalnum() accepte aussi des caractères Unicode reconnus comme numériques. Par exemple, le caractère exposant "²" possède une propriété numérique reconnue par Python.
1 2 | print("Python²".isalnum()) print("²".isalnum()) |
Sortie :
1 2 | True True |
Les fractions Unicode
Comme isalnum() considère également les caractères reconnus par isnumeric(), certaines fractions Unicode sont acceptées. Le caractère "⅕" en est un exemple.
1 2 | print("⅕".isnumeric()) print("⅕".isalnum()) |
Sortie :
1 2 | True True |
4. Utiliser isalnum() dans une condition
Comme isalnum() retourne un booléen, elle peut être utilisée directement dans une instruction if. Cela permet notamment d'effectuer des contrôles simples sur des identifiants ou d'autres données textuelles.
Dans l'exemple suivant, l'identifiant ne contient que des lettres et des chiffres. La condition est donc vraie.
1 2 3 4 5 | identifiant = "Yassine2026" if identifiant.isalnum(): print("Identifiant alphanumérique valide") else: print("Identifiant invalide") |
Sortie :
1 | Identifiant alphanumérique valide |
Si l'identifiant contient un caractère de soulignement, isalnum() retourne False car "_" n'est pas un caractère alphanumérique.
1 2 3 4 5 | identifiant = "Yassine_2026" if identifiant.isalnum(): print("Identifiant alphanumérique valide") else: print("Identifiant invalide") |
Sortie :
1 | Identifiant invalide |
Lorsque seuls les espaces placés au début et à la fin doivent être ignorés, strip() peut être appliquée avant isalnum().
1 2 3 | texte = " Python2026 " resultat = texte.strip().isalnum() print(resultat) |
Sortie :
1 | True |
Si les règles d'une application autorisent les espaces entre les mots, il est possible de les retirer avant le test. Cette transformation doit cependant correspondre aux règles de validation réellement souhaitées.
1 2 3 | texte = "Python 2026" resultat = texte.replace(" ", "").isalnum() print(resultat) |
Sortie :
1 | True |
5. Exemples pratiques avec isalnum()
Valider un identifiant simple
isalnum() peut servir à vérifier qu'un identifiant simple contient uniquement des lettres et des caractères numériques, sans espace ni ponctuation.
1 2 3 4 5 | identifiant = "Etudiant2026" if identifiant.isalnum(): print("Identifiant accepté") else: print("Identifiant refusé") |
Sortie :
1 | Identifiant accepté |
Filtrer une liste de chaînes
La méthode isalnum() peut être utilisée dans une boucle pour conserver uniquement les chaînes entièrement alphanumériques.
1 2 3 4 | valeurs = ["Python", "Python3", "Java 21", "HTML5", "user_name", "2026"] for valeur in valeurs: if valeur.isalnum(): print(valeur) |
Sortie :
1 2 3 4 | Python Python3 HTML5 2026 |
Créer une liste de valeurs alphanumériques
Une compréhension de liste permet de créer directement une nouvelle liste contenant uniquement les chaînes pour lesquelles isalnum() retourne True.
1 2 3 | valeurs = ["Cours1", "Cours 2", "Python3", "test_4", "Java21"] resultat = [valeur for valeur in valeurs if valeur.isalnum()] print(resultat) |
Sortie :
1 | ['Cours1', 'Python3', 'Java21'] |
Comparer isalnum(), isalpha() et isdigit()
isalnum() est plus générale que isalpha() et isdigit() : une chaîne peut être alphanumérique si elle contient des lettres, des caractères numériques ou un mélange des deux.
1 2 3 | valeurs = ["Python", "2026", "Python2026"] for valeur in valeurs: print(valeur, ":", valeur.isalpha(), valeur.isdigit(), valeur.isalnum()) |
Sortie :
1 2 3 | Python : True False True 2026 : False True True Python2026 : False False True |
Détecter les caractères non alphanumériques
isalnum() peut être appliquée caractère par caractère pour repérer les caractères qui ne sont ni alphabétiques ni numériques.
1 2 3 4 | texte = "Python_2026!" for caractere in texte: if not caractere.isalnum(): print(repr(caractere)) |
Sortie :
1 2 | '_' '!' |
Vérifier plusieurs valeurs
L'exemple suivant permet d'observer rapidement le comportement de isalnum() avec différents types de chaînes.
1 2 3 | valeurs = ["Python", "2026", "Python2026", "Python 2026", "Python_2026", ""] for valeur in valeurs: print(repr(valeur), ":", valeur.isalnum()) |
Sortie :
1 2 3 4 5 6 | 'Python' : True '2026' : True 'Python2026' : True 'Python 2026' : False 'Python_2026' : False '' : False |
6. À retenir !
La méthode isalnum() permet de vérifier si une chaîne non vide contient exclusivement des caractères alphabétiques ou numériques reconnus par Python.
- isalnum() retourne True si tous les caractères sont alphabétiques ou numériques et si la chaîne n'est pas vide.
- Une chaîne composée uniquement de lettres peut retourner True.
- Une chaîne composée uniquement de caractères numériques peut retourner True.
- Une chaîne mélangeant lettres et chiffres peut également retourner True.
- Il n'est donc pas nécessaire d'avoir simultanément au moins une lettre et au moins un chiffre.
- Les espaces provoquent le retour de False.
- Les signes de ponctuation provoquent le retour de False.
- Le tiret et le caractère de soulignement "_" ne sont pas alphanumériques pour isalnum().
- Une chaîne vide retourne False.
- isalnum() prend en compte les propriétés Unicode des caractères alphabétiques et numériques.
Le programme suivant résume le comportement de isalnum() avec quelques chaînes représentatives.
1 2 3 4 5 6 | print("Python".isalnum()) print("2026".isalnum()) print("Python2026".isalnum()) print("Python 2026".isalnum()) print("Python_2026".isalnum()) print("".isalnum()) |
Sortie :
1 2 3 4 5 6 | True True True False False False |
Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/



