Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Licence CC BY-NC-ND Thierry Parmentelat & Arnaud Legout Inria - UCA

Complément - niveau basique

Revenons sur les noms de variables autorisés ou non.

Les noms les plus simples sont constitués de lettres. Par exemple :

factoriel = 1

On peut utiliser aussi les majuscules, mais attention cela définit une variable différente. Ainsi :

Factoriel = 100
factoriel == Factoriel
False

Le signe == permet de tester si deux variables ont la même valeur. Si les variables ont la même valeur, le test retournera True, et False sinon. On y reviendra bien entendu.

Conventions habituelles

En règle générale, on utilise uniquement des minuscules pour désigner les variables simples (ainsi d’ailleurs que pour les noms de fonctions), les majuscules sont réservées en principe pour d’autres sortes de variables, comme les noms de classe, que nous verrons ultérieurement.

Notons qu’il s’agit uniquement d’une convention, ceci n’est pas imposé par le langage lui-même.

Pour des raisons de lisibilité, il est également possible d’utiliser le tiret bas _ dans les noms de variables. On préfèrera ainsi :

age_moyen = 75 # oui

plutôt que ceci (bien qu’autorisé par le langage) :

AgeMoyen = 75 # autorisé, mais non

On peut également utiliser des chiffres dans les noms de variables comme par exemple :

age_moyen_dept75 = 80

avec la restriction toutefois que le premier caractère ne peut pas être un chiffre, cette affectation est donc refusée :

75_age_moyen = 80 # erreur de syntaxe
The history saving thread hit an unexpected error (OperationalError('attempt to write a readonly database')).History will not be written to the database.
  Cell In[6], line 1
    75_age_moyen = 80 # erreur de syntaxe
      ^
SyntaxError: invalid decimal literal

Le tiret bas comme premier caractère

Il est par contre, possible de faire commencer un nom de variable par un tiret bas comme premier caractère ; toutefois, à ce stade, nous vous déconseillons d’utiliser cette pratique qui est réservée à des conventions de nommage bien spécifiques.

_autorise_mais_deconseille = 'Voir le PEP 008'

Et en tout cas, il est fortement déconseillé d’utiliser des noms de la forme __variable__ qui sont réservés au langage. Nous reviendrons sur ce point dans le futur, mais regardez par exemple cette variable que nous n’avons définie nulle part mais qui pourtant existe bel et bien :

__name__  # ne définissez pas vous-même de variables de ce genre
'__main__'

Ponctuation

Dans la plage des caractères ASCII, il n’est pas possible d’utiliser d’autres caractères que les caractères alphanumériques et le tiret bas. Notamment le tiret haut - est interprété comme l’opération de soustraction. Attention donc à cette erreur fréquente :

age-moyen = 75  # erreur : en fait python l'interprète comme 'age - moyen = 75'
  Cell In[9], line 1
    age-moyen = 75  # erreur : en fait python l'interprète comme 'age - moyen = 75'
    ^
SyntaxError: cannot assign to expression here. Maybe you meant '==' instead of '='?

Caractères exotiques

En Python 3, il est maintenant aussi possible d’utiliser des caractères Unicode dans les identificateurs :

# les caractères accentués sont permis
nom_élève = "Jules Maigret"
# ainsi que l'alphabet grec
from math import cos, pi as π
θ = π / 4
cos(θ)
0.7071067811865476

Tous les caractères Unicode ne sont pas permis - heureusement car cela serait source de confusion. Nous citons dans les références les documents qui précisent quels sont exactement les caractères autorisés.

# ce caractère n'est pas autorisé, car il
# est considéré comme un signe mathématique (produit)
∏ = 10
  Cell In[12], line 3
    ∏ = 10
    ^
SyntaxError: invalid character '∏' (U+220F)
# ce caractère est encore différent, c'est aussi
# un pi grec mais pas le même, cette fois-ci
# c'est un nom de variable acceptable mais 
# il n'est pas défini
𝞟
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[13], line 5
      1 # ce caractère est encore différent, c'est aussi
      2 # un pi grec mais pas le même, cette fois-ci
      3 # c'est un nom de variable acceptable mais 
      4 # il n'est pas défini
----> 5 𝞟

NameError: name 'Π' is not defined

Conseil

Il est très vivement recommandé :

Pour en savoir plus

Pour les esprits curieux, Guido van Rossum, le fondateur de Python, est le co-auteur d’un document qui décrit les conventions de codage à utiliser dans la bibliothèque standard Python. Ces règles sont plus restrictives que ce que le langage permet de faire, mais constituent une lecture intéressante si vous projetez d’écrire beaucoup de Python.

Voir dans le PEP 008 la section consacrée aux règles de nommage - (en anglais)

Voir enfin, au sujet des caractères exotiques dans les identificateurs :