> Les bases > Démarrage > Variables en python
Variables en python
Les bases sur les variables :
- le nom d'une variable peut commencer par n'importe lettre minuscule ou majuscule ou un '_', puis des lettres, des chiffres ou des '_'.
- une variable ne peut pas être utilisée avant d'avoir été définie (utilisation d'une variable dans un expression avant de lui affecter une valeur produit une erreur).
- par contre, pas besoin de déclarer ou typer explicitement une variable avant de lui affecter une valeur. Il suffit de faire : myVar = 'hello' pour définir myVar.
- Une variable sans valeur est définie par : myVar = None (None est l'équivalent de null dans d'autres langages).
Visibilité des variables :
- par défaut, une variable est toujours locale, donc disponible seulement dans la fonction dans laquelle est elle définie.
- par exemple :
x = 0
def myFunc():
x = 1
myFunc()
print(x)
imprime 0, car la variable x définie dans la fonction est différente, mais donc qu'on sort de la fonction, c'est la variable en dehors de la fonction qui est disponible.
- une variable définie en dehors de toutes les fonctions est globale.
- on peut accéder à l'intérieur d'une fonction à une variable globale, mais par défaut, on ne peut pas la modifier (lecture seule).
- par contre, si on déclare la variable dans la fonction avec global, on peut la modifier :
x = 7
def myFunc():
global x
print(x)
x = x + 1
myFunc()
print(x)
imprime 7, puis 8.
- et par contre, on peut bien sûr toujours modifier le contenu d'une variable si celui-ci est mutable :
x = ['a']
def myFunc():
x.append('b')
myFunc()
donne ['a', 'b'] et pas besoin d'instruction global
Identifiant d'une variable :
- id(myVar) : donne l'id interne de la structure de données pointée par la variable (c'est l'id décimal que l'on peut voir aussi en hexadécimal quand la variable est un objet et qu'on l'imprime).
- cet id est unique et constant pendant toute la durée de vie de la structure (mais un id peut être réutilisé dès que cette structure a disparu).
- par exemple a = 'hello'; b = a; print(id(a), id(b)) : imprime deux fois le même id car les variables a et b pointent vers la même structure de données.
Les underscores '_' :
- un seul underscore au début : élément privé qui n'est pas importé lors d'un from myModule import *.
- un seul underscore à la fin : pour éviter les conflits avec un mot clef réservé.
- deux underscores au début : le nom est changé en le préfixant avec _nomClasse.
- deux underscores au début et à la fin : noms pour fonctions spéciales comme __init__, ne pas en définir des nouveaux.
Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert