introduction
LesVariables sont un concept de programmation important à maîtriser. Ce sont essentiellement des symboles qui représentent une valeur que vous utilisez dans un programme.
Ce didacticiel abordera certaines notions de base relatives aux variables et leur utilisation au sein des programmes Python 3 que vous créez.
Comprendre les variables
En termes techniques, une variable affecte un emplacement de stockage à une valeur liée à un nom ou à un identifiant symbolique. Le nom de la variable est utilisé pour référencer cette valeur stockée dans un programme informatique.
Vous pouvez considérer une variable comme une étiquette portant un nom, que vous associez à une valeur:
Disons que nous avons un entier,103204934813
, et que nous voulons le stocker dans une variable plutôt que de retaper continuellement le nombre long encore et encore. Au lieu de cela, utilisons quelque chose qui est facile à retenir comme la variablemy_int
:
my_int = 103204934813
Si nous le considérons comme une étiquette liée à la valeur, cela ressemblera à ceci:
L'étiquette a le nom de variablemy_int
écrit dessus, et est liée à la valeur entière103204934813
.
La phrasemy_int = 103204934813
est unassignment statement, qui se compose de quelques parties:
-
le nom de la variable (
my_int
) -
leassignment operator, également appelé signe égal (
=
) -
la valeur qui est liée au nom de la variable (
103204934813
)
Ensemble, ces trois parties constituent l'instruction qui définit la variablemy_int
égale à la valeur de l'entier103204934813
.
Dès que nous définissons une variable égale à une valeur, nousinitialize ou créons cette variable. Une fois que nous avons fait cela, nous sommes prêts à utiliser la variable au lieu de la valeur. En Python, les variables n'ont pas besoin de déclaration explicite avant d'être utilisées, contrairement à certains langages de programmation; vous pouvez commencer à utiliser la variable immédiatement.
Dès que nous définissonsmy_int
égal à la valeur de103204934813
, nous pouvons utilisermy_int
à la place de l'entier, donc imprimons-le:
print(my_int)
Output103204934813
En utilisant des variables, nous pouvons rapidement et facilement fairemath. Avecmy_int = 1040
, soustrayons la valeur entière 813:
print(my_int - 813)
Output103204934000
Dans cet exemple, Python fait le calcul pour nous, en soustrayant 813 de la variablemy_int
pour renvoyer la somme103204934000
.
En parlant de mathématiques, les variables peuvent être égales au résultat d’une équation mathématique. Ajoutons deux nombres ensemble et stockons la valeur de la somme dans la variablex
:
x = 76 + 145
L’exemple ci-dessus peut ressembler à quelque chose que vous connaissez déjà: l’algèbre. En algèbre, les lettres et autres symboles sont utilisés pour représenter des nombres et des quantités dans des formules et des équations, tout comme les variables sont des noms symboliques qui représentent la valeur d'un type de données. Pour que la syntaxe Python soit correcte, vous devez vous assurer que votre variable est à gauche des équations.
Allons-y et imprimonsx
:
print(x)
Output221
Python a renvoyé la valeur221
car la variablex
a été définie égale à la somme de76
et145
.
Les variables peuvent représenter n’importe quel type de données, pas seulement des entiers:
my_string = 'Hello, World!'
my_flt = 45.06
my_bool = 5 > 9 #A Boolean value will return either True or False
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
my_tuple = ('one', 'two', 'three')
my_dict = {'letter': 'g', 'number': 'seven', 'symbol': '&'}
Si vous imprimez l'une des variables ci-dessus, Python renverra ce à quoi cette variable est équivalente. Par exemple, travaillons avec l'instruction d'affectation pour leslist data type ci-dessus:
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
print(my_list)
Output['item_1', 'item_2', 'item_3', 'item_4']
Nous avons passé la valeur de liste de['item_1', 'item_2', 'item_3', 'item_4']
à la variablemy_list
, puis avons utilisé la fonctionprint()
pour imprimer cette valeur en appelantmy_list
.
Les variables fonctionnent en découpant une petite zone de mémoire dans votre ordinateur qui accepte les valeurs spécifiées qui sont ensuite associées à cet espace.
Variables de nommage: règles et style
La dénomination des variables est assez flexible, mais vous devez garder à l’esprit certaines règles:
-
Les noms de variables ne doivent contenir qu'un seul mot (comme dans aucun espace)
-
Les noms de variable doivent être composés uniquement de lettres, de chiffres et de traits de soulignement (
_
) -
Les noms de variables ne peuvent pas commencer par un nombre
En suivant les règles ci-dessus, examinons les noms de variable valides et non valides:
Valide | Invalide | Pourquoi invalide |
---|---|---|
mon_int |
mon-int |
Les traits d'union ne sont pas autorisés |
int4 |
4int |
Ne peut pas commencer par un nombre |
MY_INT |
$MY_INT |
Impossible d'utiliser des symboles autres que |
autre_int |
un autre int |
Il ne peut pas y avoir plus d'un mot |
Une autre chose à garder à l'esprit lorsque vous nommez des variables, c'est qu'elles sont sensibles à la casse, ce qui signifie quemy_int
,MY_INT
,My_Int
etmY_iNt
sont toutes des variables complètement différentes. Évitez d'utiliser des noms de variable similaires dans un programme afin de vous assurer, ainsi que vos collaborateurs actuels et futurs, que vos variables restent droites.
Enfin, quelques notes sur le style. Classiquement, lorsque vous nommez des variables, il est habituel de les commencer par une lettre minuscule et d'utiliser des tirets bas pour séparer les mots. Commencer par une lettre majuscule n'est pas invalide, et certaines personnes peuvent préférer camelCase ou des lettres majuscules et minuscules mélangées lors de l'écriture de leurs variables, mais ce sont des choix moins conventionnels.
Style conventionnel | Style non conventionnel | Pourquoi non conventionnel |
---|---|---|
mon_int |
myInt |
camelCase pas conventionnel |
int4 |
Int4 |
Première lettre majuscule non conventionnelle |
ma_première_chaîne |
myFirstString |
camelCase pas conventionnel |
Le choix de style le plus important que vous puissiez faire est d’être cohérent. Si vous commencez à travailler sur un projet existant qui utilise camelCase pour ses noms de variables, il est préférable de continuer à utiliser le style existant.
PEP 8 est le guide de style officiel du code Python et il répond à de nombreuses questions stylistiques que vous pourriez avoir sur Python. En général, la lisibilité et la cohérence sont privilégiées par rapport aux autres préoccupations stylistiques.
Réaffectation de variables
Comme l'indique le motvariable, les variables Python peuvent être facilement modifiées. Cela signifie que vous pouvez connecter très facilement une valeur différente à une variable précédemment affectée par simple réaffectation.
Il est utile de pouvoir réaffecter des ressources car, tout au long du programme, vous devrez peut-être accepter les valeurs générées par l'utilisateur dans des variables déjà initialisées ou modifier l'affectation pour un élément défini précédemment.
Savoir que vous pouvez facilement et facilement réaffecter une variable peut également être utile dans les situations où vous travaillez sur un programme volumineux qui a été lancé par quelqu'un d'autre et que vous ne savez pas encore ce qui a déjà été défini.
Affectons d'abordx
sous forme d'entier, puis réaffectons-les en tant questring:
#Assign x to be an integer
x = 76
print(x)
#Reassign x to be a string
x = "Sammy"
print(x)
Output76
Sammy
L'exemple ci-dessus montre que nous pouvons d'abord affecter la variablex
et lui attribuer la valeur d'un entier, puis réaffecter la variablex
en lui attribuant cette fois la valeur d'une chaîne.
Si nous réécrivions le programme de cette façon:
x = 76
x = "Sammy"
print(x)
Nous ne recevrions que la deuxième valeur affectée en tant que sortie puisqu'il s'agissait de la dernière affectation:
OutputSammy
Réaffecter des variables peut être utile dans certains cas, mais vous voudrez être conscient de la lisibilité de votre code et vous efforcer de rendre votre programme aussi clair que possible.
Affectation multiple
Avec Python, vous pouvez affecter une seule valeur à plusieurs variables à la fois. Cela vous permet d'initialiser plusieurs variables à la fois, que vous pouvez réaffecter vous-même ultérieurement dans le programme ou par saisie de l'utilisateur.
Grâce à une affectation multiple, vous pouvez définir les variablesx
,y
etz
sur la valeur de l'entier0
:
x = y = z = 0
print(x)
print(y)
print(z)
Output0
0
0
Dans cet exemple, les trois variables (x
,y
etz
) sont affectées au même emplacement mémoire. Ils sont chacun égal à la valeur de 0.
Python vous permet également d’attribuer plusieurs valeurs à plusieurs variables d’une même ligne. Chacune de ces valeurs peut être d'un type de données différent:
j, k, l = "shark", 2.05, 15
print(j)
print(k)
print(l)
Outputshark
2.05
15
Dans l'exemple ci-dessus, la variablej
a été affectée à la chaîne"shark"
, la variablek
a été affectée au float2.05
et la variablel
était affecté à l'entier15
.
Cette approche permettant d'affecter plusieurs variables à plusieurs valeurs sur une seule ligne permet de garder les lignes de code réduites, mais veille à ne pas compromettre la lisibilité pour moins de lignes de code.
Variables globales et locales
Lorsque vous utilisez des variables dans un programme, il est important de garder à l'espritvariable scope. La portée d’une variable fait référence aux endroits auxquels elle est accessible dans le code d’un programme donné. Cela signifie que toutes les variables ne sont pas accessibles à partir de toutes les parties d'un programme donné - certaines variables seront globales et d'autres seront locales.
Global variables existe en dehors defunctions. Local variables existent dans les fonctions.
Jetons un coup d’œil aux variables globales et locales en action:
#Create a global variable, outside of a function
glb_var = "global"
#Define a function
def var_function():
lcl_var = "local" #Create a local variable, inside function
print(lcl_var)
#Call function to print local variable
var_function()
#Print global variable outside function
print(glb_var)
Outputlocal
global
Le programme ci-dessus affecte la variable globaleglb_var
en dehors de toute fonction, puis définit la fonctionvar_function()
. À l'intérieur de la fonction, une variable locale appeléelcl_var
est affectée puis imprimée. Le programme se termine en appelant lesvar_function()
puis en imprimant lesglb_var
.
Puisqueglb_var
est une variable globale, nous pouvons y faire référence dansvar_function()
. Modifions le petit programme ci-dessus pour le faire:
glb_var = "global"
def var_function():
lcl_var = "local"
print(lcl_var)
print(glb_var) #Print glb_var within function
var_function()
print(glb_var)
Outputlocal
global
global
Nous avons maintenant la variable globaleglb_var
imprimée deux fois, car elle est imprimée à la fois par la fonction et en dehors de la fonction.
Et si nous essayions d'appeler la variable locale en dehors de la fonction?
glb_var = "global"
def var_function():
lcl_var = "local"
print(lcl_var)
print(lcl_var)
OutputNameError: name 'lcl_var' is not defined
Nous ne pouvons pas utiliser une variable locale en dehors de la fonction dans laquelle elle est assignée. Si nous essayons de le faire, nous recevrons unNameError
en retour.
Voyons un autre exemple où nous utilisons le même nom de variable pour une variable globale et une variable locale:
num1 = 5 #Global variable
def my_function():
num1 = 10 #Use the same variable name num1
num2 = 7 #Assign local variable
print(num1) #Print local variable num1
print(num2) #Print local variable num2
#Call my_function()
my_function()
#Print global variable num1
print(num1)
Output10
7
5
Comme la variable locale denum1
est affectée localement dans une fonction, lorsque nous appelons cette fonction, nous voyonsnum1
comme égal à la valeur locale de10
. Lorsque nous imprimons la valeur globale denum1
après avoir appelémy_function()
, nous voyons que la variable globalenum1
est toujours égale à la valeur de5
.
Il est possible d’affecter des variables globales dans une fonction à l’aide de l’instructionglobal
de Python:
def new_shark():
#Assign variable as global
global shark
shark = "Sammy"
#Call new_shark() function
new_shark()
#Print global variable shark
print(shark)
Même si la variableshark
a été affectée localement dans la fonctionnew_shark()
, elle est accessible en dehors de la fonction en raison de l'instructionglobal
utilisée avant l'affectation de la variable dans la fonction. En raison de cette instructionglobal
, lorsque nous appelonsprint(shark)
en dehors de la fonction, nous ne recevons pas d'erreur. Bien que vouscanattribuez une variable globale dans une fonction, vous n'aurez probablement pas besoin de le faire souvent et devriez vous tromper du côté du code lisible.
Il faut aussi garder à l'esprit que si vous référencez une variable dans une fonction, sans lui affecter une valeur, cette variable est implicitement globale. Pour avoir une variable locale, vous devez lui attribuer une valeur dans le corps de la fonction.
Lorsque vous travaillez avec des variables, il est important de décider s'il est plus approprié d'utiliser une variable globale ou locale. En règle générale, il est préférable de conserver les variables locales, mais lorsque vous utilisez la même variable dans plusieurs fonctions, vous souhaiterez peut-être initialiser une variable globale. Si vous travaillez avec la variable uniquement dans une fonction ou unclass, vous souhaiterez probablement utiliser une variable locale à la place.
Conclusion
Ce didacticiel est passé en revue certains cas d’utilisation courants de variables dans Python 3. Les variables sont un élément important de la programmation, servant de symboles qui représentent la valeur d'undata type que vous utilisez dans un programme.