Skip to content

Mots clés et mots réservés en Python

En Python, au moins depuis Python 3.7, tous les mots-clés sont des mots réservés, vous ne pouvez donc pas utiliser de mots-clés comme identifiants.

Vous pouvez interroger une liste de mots-clés Python avec le module de mots-clés dans la bibliothèque standard.

Cet article décrit le contenu suivant.

  • La différence entre les mots clés et les mots réservés
  • Obtenez une liste de mots-clés Python :keyword.kwlist
  • Vérifiez si la chaîne est un mot-clé Python :keyword.iskeyword()

L’exemple de code suivant s’exécute sur Python 3.7.3. Veuillez noter que les mots-clés peuvent différer selon la version.

La différence entre les mots clés et les mots réservés

Strictement parlant, les mots-clés et les mots réservés sont des concepts différents.

Les mots-clés ont une signification particulière dans une langue et font partie de la syntaxe.

Les mots réservés sont des mots qui ne peuvent pas être utilisés comme identifiants (variables, fonctions, etc.), car ils sont réservés par le langage.

En Python, au moins à partir de Python 3.7, tous les mots-clés sont des mots réservés et il n’y a pas de mots réservés non-mot-clé.

Consultez également l’article suivant pour les noms pouvant être utilisés comme identificateurs.

Obtenez une liste de mots-clés Python :keyword.kwlist

Une liste de mots-clés en Python est stockée dans keyword.kwlist.

Dans l’exemple suivant, pprint est utilisé pour faciliter la lecture de la sortie.

import keyword
import pprint

print(type(keyword.kwlist))
# <class 'list'>

print(len(keyword.kwlist))
# 35

pprint.pprint(keyword.kwlist, compact=True)
# ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break',
#  'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for',
#  'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not',
#  'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

Les éléments de la liste sont des chaînes str.

print(keyword.kwlist[0])
# False

print(type(keyword.kwlist[0]))
# <class 'str'>

Si ces noms sont utilisés comme identifiants (noms de variables, noms de fonctions, noms de classes, etc.), une erreur est générée.

# True = 100
# SyntaxError: can't assign to keyword

Vérifiez si la chaîne est un mot-clé Python :keyword.iskeyword()

Vous pouvez vérifier si une chaîne est un mot-clé avec keyword.iskeyword().

Renvoie True si la chaîne spécifiée est un mot-clé et False si ce n’est pas le cas.

print(keyword.iskeyword('None'))
# True

print(keyword.iskeyword('none'))
# False