• Aucun résultat trouvé

Chapitre 2 Notion de variable en informatique. Chapitre 2 Notion de variable en informatique 1 / 28

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre 2 Notion de variable en informatique. Chapitre 2 Notion de variable en informatique 1 / 28"

Copied!
46
0
0

Texte intégral

(1)

Notion de variable en informatique

(2)

Introduction

I. INTRODUCTION

DÉFINITION

Les variables, en informatique, servent à désigner un espace mémoire de l’ordinateur. On peut y stocker une valeur, y accéder et la modifier.

SHELL

>>> x=2020

Chapitre 2 Notion de variable en informatique 2 / 28

(3)

I. INTRODUCTION

DÉFINITION

Les variables, en informatique, servent à désigner un espace mémoire de l’ordinateur. On peut y stocker une valeur, y accéder et la modifier.

SHELL

>>> x=2020

(4)

Introduction

Le processeur mettra la valeur 2020 dans une case mémoire repérée par son nomx.

Ï Une valeur non affectée à un nom de variable n’existe pas en mémoire.

Ï Une variable peut avoir différents types (entier, flottant, tableau ... ) auxquels il faudra être vigilant pour pouvoir les manipuler...

SHELL

>>> a=42

>>> b=’ptsi’

>>> c=[4,6,3]

>>> type(a),type(b),type(c)

(<class ’int’>, <class ’str’>, <class ’list’>)

Chapitre 2 Notion de variable en informatique 3 / 28

(5)

Introduction

Le processeur mettra la valeur 2020 dans une case mémoire repérée par son nomx.

Ï Une valeur non affectée à un nom de variable n’existe pas en mémoire.

Ï Une variable peut avoir différents types (entier, flottant, tableau ... ) auxquels il faudra être vigilant pour pouvoir les manipuler...

>>> a=42

>>> b=’ptsi’

>>> c=[4,6,3]

>>> type(a),type(b),type(c)

(<class ’int’>, <class ’str’>, <class ’list’>)

(6)

Introduction

Le processeur mettra la valeur 2020 dans une case mémoire repérée par son nomx.

Ï Une valeur non affectée à un nom de variable n’existe pas en mémoire.

Ï Une variable peut avoir différents types (entier, flottant, tableau ... ) auxquels il faudra être vigilant pour pouvoir les manipuler...

SHELL

>>> a=42

>>> b=’ptsi’

>>> c=[4,6,3]

>>> type(a),type(b),type(c)

(<class ’int’>, <class ’str’>, <class ’list’>)

Chapitre 2 Notion de variable en informatique 3 / 28

(7)

Syntaxe de l’affectation

II. SYNTAXE DE LAFFECTATION

- L’opération de réservation d’une case mémoire est appeléeallocation. Elle s’écrit sous la forme :

etiquette = valeur

- On retiendra que l’égalité en informatique n’est pas celle des mathématiques : il s’agit ici d’un symbole d’affectation et non pas d’un résultat. En particulier, ce symbole n’est pas symétrique. L’instruction2=xn’est pas correcte.

(8)

Syntaxe de l’affectation

II. SYNTAXE DE LAFFECTATION

- L’opération de réservation d’une case mémoire est appeléeallocation. Elle s’écrit sous la forme :

etiquette = valeur

- L’étiquette est le nom de la variable toujours placé à gauche de l’opérateur « =

», et la valeur à stocker sera placée à droite.

- On retiendra que l’égalité en informatique n’est pas celle des mathématiques : il s’agit ici d’un symbole d’affectation et non pas d’un résultat. En particulier, ce symbole n’est pas symétrique. L’instruction2=xn’est pas correcte.

Chapitre 2 Notion de variable en informatique 4 / 28

(9)

II. SYNTAXE DE LAFFECTATION

- L’opération de réservation d’une case mémoire est appeléeallocation. Elle s’écrit sous la forme :

etiquette = valeur

- L’étiquette est le nom de la variable toujours placé à gauche de l’opérateur « =

», et la valeur à stocker sera placée à droite.

- On retiendra que l’égalité en informatique n’est pas celle des mathématiques : il s’agit ici d’un symbole d’affectation et non pas d’un résultat. En particulier, ce symbole n’est pas symétrique. L’instruction2=xn’est pas correcte.

(10)

Syntaxe de l’affectation

SHELL

>>> compteur=34

>>> valeur=56.78

>>> 2<3 True

>>> print(compteur,valeur) 34 56.78

>>> result=valeur*compteur

>>> print(result) 1930.52

- Comme on le voit sur cet exemple, on peut, et cela est largement conseillé, utiliser des noms de variables qui soient plus explicites que simplement des lettres.

Chapitre 2 Notion de variable en informatique 5 / 28

(11)

SHELL

>>> compteur=34

>>> valeur=56.78

>>> 2<3 True

>>> print(compteur,valeur) 34 56.78

>>> result=valeur*compteur

>>> print(result) 1930.52

- Comme on le voit sur cet exemple, on peut, et cela est largement conseillé, utiliser des noms de variables qui soient plus explicites que simplement des lettres.

(12)

Syntaxe de l’affectation

Attention aux mots réservés

Chapitre 2 Notion de variable en informatique 6 / 28

(13)

- Il est aussi possible d’affecter le résultat d’une expression à une variable :

SHELL

>>> a=5

>>> b=a+3*(a+1)

>>> print(b) 23

(14)

Syntaxe de l’affectation

- En Python, il ne faut pas confondre l’opérateur d’affectation = avec

l’opérateur == qui permet de tester une égalité et qui est donc une expression booléenne (vraie ou fausse) :

SHELL

>>> x==2 True

>>> x+1==4 False

Chapitre 2 Notion de variable en informatique 8 / 28

(15)

- En Python, il ne faut pas confondre l’opérateur d’affectation = avec

l’opérateur == qui permet de tester une égalité et qui est donc une expression booléenne (vraie ou fausse) :

SHELL

>>> x==2 True

>>> x+1==4 False

(16)

Réaffectation

III. RÉAFFECTATION

Rien n’empêche de modifier une variable déjà définie, mais dans ce cas l’ancienne valeur sera totalement perdue puisque «écrasée» par la nouvelle.

SHELL

>>> x=66

>>> x 66

>>> x=x*2

>>> x 132

>>> x=’abcd’ # On peut changer le type de x

>>> x

’abcd’

Chapitre 2 Notion de variable en informatique 9 / 28

(17)

III. RÉAFFECTATION

Rien n’empêche de modifier une variable déjà définie, mais dans ce cas l’ancienne valeur sera totalement perdue puisque «écrasée» par la nouvelle.

SHELL

>>> x=66

>>> x 66

>>> x=x*2

>>> x 132

>>> x=’abcd’ # On peut changer le type de x

>>> x

’abcd’

(18)

Réaffectation

Le caractère # permet les commentaires, ils ne sont pas lus par Python.

On notera que le type des variables en Python n’est pas figé contrairement à d’autres langages où il est nécessaire de définir à l’avance le type de la variable (Pascal)

On parle de typage dynamique.

Chapitre 2 Notion de variable en informatique 10 / 28

(19)

Mécanisme de la mémoire

IV. MÉCANISME DE LA MÉMOIRE

Ï Il faut aussi tenir compte du type des différentes variables. On ne manipulera pas de la même manière un simple entier, une chaîne de caractère, un tableau ...

Chaque objet possède un identifiant (une place mémoire repérée par un entier) unique qui peut être interrogé par la fonction intégréeid():

(20)

Mécanisme de la mémoire

IV. MÉCANISME DE LA MÉMOIRE

Ï Il faut aussi tenir compte du type des différentes variables. On ne manipulera pas de la même manière un simple entier, une chaîne de caractère, un tableau ...

Ï Python manipulera donc desobjets(valeurs sur lesquelles on peut travailler) :

Chaque objet possède un identifiant (une place mémoire repérée par un entier) unique qui peut être interrogé par la fonction intégréeid():

Chapitre 2 Notion de variable en informatique 11 / 28

(21)

SHELL

>>> a=23

>>> type(a)

<class ’int’>

>>> id(a)

140721732962656

>>> b=’ptsi’

>>> id(b) 1581790187312

(22)

Mécanisme de la mémoire

Cette adresse est momentanée, elle peut changer lors d’une autre compilation ou si on fait tourner le programme sur un autre ordinateur. Dans tous les cas, elle reste unique.

Pour simplifier, on dira quebpointe sur l’adresseA=i d(b)et on pourra utiliser la notation

b • −→

id(b)

’ptsi’

Chapitre 2 Notion de variable en informatique 13 / 28

(23)

Cette adresse est momentanée, elle peut changer lors d’une autre compilation ou si on fait tourner le programme sur un autre ordinateur. Dans tous les cas, elle reste unique.

Pour simplifier, on dira quebpointe sur l’adresseA=i d(b)et on pourra utiliser la notation

b • −→

id(b)

’ptsi’

(24)

Mécanisme de la mémoire

ATTENTION :Lorsqueyest unobjet connu(et non une valeur inerte),une affectationx=yne crée pas une autre case mémoirex(avec une autre adresse) dans laquelle sera mise la valeur deymais crée simplement une nouvelle variable quipointera sur la même adresse quey: c’est unalias.

SHELL

>>> y=2

>>> x=y

>>> id(x),id(y)

(140721768023744, 140721768023744)

Schématiquement, en écrivantx=y, on obtient : y

&

x

id(y)

valeur_y

Chapitre 2 Notion de variable en informatique 14 / 28

(25)

Mécanisme de la mémoire

ATTENTION :Lorsqueyest unobjet connu(et non une valeur inerte),une affectationx=yne crée pas une autre case mémoirex(avec une autre adresse) dans laquelle sera mise la valeur deymais crée simplement une nouvelle variable quipointera sur la même adresse quey: c’est unalias.

SHELL

>>> y=2

>>> x=y

>>> id(x),id(y)

(140721768023744, 140721768023744)

y

&

x

id(y)

valeur_y

(26)

Mécanisme de la mémoire

ATTENTION :Lorsqueyest unobjet connu(et non une valeur inerte),une affectationx=yne crée pas une autre case mémoirex(avec une autre adresse) dans laquelle sera mise la valeur deymais crée simplement une nouvelle variable quipointera sur la même adresse quey: c’est unalias.

SHELL

>>> y=2

>>> x=y

>>> id(x),id(y)

(140721768023744, 140721768023744)

Schématiquement, en écrivantx=y, on obtient : y

&

x

id(y)

valeur_y

Chapitre 2 Notion de variable en informatique 14 / 28

(27)

Mécanisme de la mémoire

Par contre, si on change la valeur dey, on modifie son adresse, alors que l’adresse dexreste l’ancienne. Au final, les valeurs dexety seront différentes :

SHELL

>>> y=2

>>> x=y

>>> id(x),id(y)

(140721768023744, 140721768023744)

>>> y=3

>>> x 2

>>> id(x),id(y)

(140721768023744, 140721768023776)

x • −→

id(x)

valeur_x y • −→

id(y)

valeur_y

(28)

Mécanisme de la mémoire

Par contre, si on change la valeur dey, on modifie son adresse, alors que l’adresse dexreste l’ancienne. Au final, les valeurs dexety seront différentes :

SHELL

>>> y=2

>>> x=y

>>> id(x),id(y)

(140721768023744, 140721768023744)

>>> y=3

>>> x 2

>>> id(x),id(y)

(140721768023744, 140721768023776)

Schématiquement, on obtient :

x • −→

id(x)

valeur_x y • −→

id(y)

valeur_y

Chapitre 2 Notion de variable en informatique 15 / 28

(29)

Incrémentation

V. INCRÉMENTATION

Une opération classique consiste à incrémenter une valeur :

SHELL

>>> x=34

>>> x=x+1

(30)

Incrémentation

V. INCRÉMENTATION

Une opération classique consiste à incrémenter une valeur :

SHELL

>>> x=34

>>> x=x+1

Il s’agit d’une simple réaffectation, la valeur dexchange et son adresse aussi.

C’est simplement le nom ’x’ qui reste inchangé :

Chapitre 2 Notion de variable en informatique 16 / 28

(31)

Incrémentation

SHELL

>>> x=34

>>> x,id(x)

(34, 140721768024768)

>>> x=x+1

>>> x,id(x)

(35, 140721768024800)

En python,x=x+1s’écrit aussix+=1. Il en est de même pour*=, -=, /=.

(32)

Incrémentation

SHELL

>>> x=34

>>> x,id(x)

(34, 140721768024768)

>>> x=x+1

>>> x,id(x)

(35, 140721768024800)

En python,x=x+1s’écrit aussix+=1. Il en est de même pour*=, -=, /=. On retiendra qu’une réaffectation ou une incrémentation en Python modifie l’adresse de l’objet.

Chapitre 2 Notion de variable en informatique 17 / 28

(33)

Affectation multiple, échange

VI. AFFECTATION MULTIPLE,ÉCHANGE

Le but est d’interchanger les valeurs deaetb.

- Examinons les instructions suivantes :

SHELL

>>> a=5

>>> b=3

>>> b=a

>>> a=b

- puis son résultat :

>>> a,b (5, 5)

(34)

Affectation multiple, échange

VI. AFFECTATION MULTIPLE,ÉCHANGE

Le but est d’interchanger les valeurs deaetb.

- Examinons les instructions suivantes :

SHELL

>>> a=5

>>> b=3

>>> b=a

>>> a=b

- puis son résultat :

SHELL

>>> a,b (5, 5)

Chapitre 2 Notion de variable en informatique 18 / 28

(35)

- Pour échanger les deux valeurs, il est nécessaire de faire apparaître une 3evariable intermédiaire qui va stocker provisoirement la valeur dea

SHELL

>>> a=5

>>> b=3

>>> c=a

>>> a=b

>>> b=c

>>> a,b (3, 5)

(36)

Affectation multiple, échange

- En Python, on peut utiliser uneallocation multiple:

SHELL

>>> a,b=5,3

>>> a 5

>>> b 3

qui permet ici d’affecter 5 àaet 3 àb.

Chapitre 2 Notion de variable en informatique 20 / 28

(37)

- Cela permet d’échanger simplement deux variables :

SHELL

>>> a,b=5,3

>>> a,b=b,a

>>> a 3

>>> b 5

(38)

Petites introduction sur les listes

VII. PETITES INTRODUCTION SUR LES LISTES

Sous Python, une liste est une séquence d’éléments (pas nécessairement de même type) séparés par une virgule délimités par des crochets. Une liste est dite mutablecar l’on peut modifier ses éléments.

SHELL

>>> Liste [1, 2, ’abc’]

>>> Liste[0]

1

>>> Liste[2]

’abc’

On notera que l’indexation des cases commence à 0.

Chapitre 2 Notion de variable en informatique 22 / 28

(39)

VII. PETITES INTRODUCTION SUR LES LISTES

Sous Python, une liste est une séquence d’éléments (pas nécessairement de même type) séparés par une virgule délimités par des crochets. Une liste est dite mutablecar l’on peut modifier ses éléments.

SHELL

>>> Liste [1, 2, ’abc’]

>>> Liste[0]

1

>>> Liste[2]

’abc’

On notera que l’indexation des cases commence à 0.

(40)

Petites introduction sur les listes

Examinons le comportement de la mémoire :

SHELL

>>> Liste=[1,2,’abc’]

>>> id(Liste) 2302358492544

>>> id(Liste[0]), id(Liste[1]), id(Liste[2]) (140722073683616, 140722073683648, 2302348470000)

>>> Liste[1]=5

>>> id(Liste) 2302358492544

>>> id(Liste[0]), id(Liste[1]), id(Liste[2]) (140722073683616, 140722073683744, 2302348470000)

Chapitre 2 Notion de variable en informatique 23 / 28

(41)

Petites introduction sur les listes

On retiendra quemodifier les éléments d’une liste ne change pas l’adresse de la liste globale, mais change seulement celle de la case qui a été modifiée.

SHELL

>>> a=[13,43,17]

>>> b=a

>>> a[0]=7

>>> b[2]=8

(42)

Petites introduction sur les listes

On retiendra quemodifier les éléments d’une liste ne change pas l’adresse de la liste globale, mais change seulement celle de la case qui a été modifiée.

Exemple :Quelles sont les valeurs deaetbaprès les instructions suivantes ?

SHELL

>>> a=[13,43,17]

>>> b=a

>>> a[0]=7

>>> b[2]=8

Chapitre 2 Notion de variable en informatique 24 / 28

(43)

1)

Quelles sont les valeurs dex, y, z après les instructions suivantes ?

SHELL

>>> x=23

>>> y=18

>>> z=x

>>> x=y

>>> y=z

(44)

Exercices d’applications

2)

Quelles sont les valeurs dex, y après les instructions suivantes ?

SHELL

>>> x=23

>>> y=18

>>> x=x+y

>>> y=x-y

>>> x=x-y

Chapitre 2 Notion de variable en informatique 26 / 28

(45)

3)

Quelles sont les valeurs dex, y après les instructions suivantes ?

SHELL

>>> x=19

>>> x,y=x+2,x*2

(46)

Exercices d’applications

4)

Quelles sont les valeurs dex, y après les instructions suivantes ?

SHELL

>>> x,y=2,3

>>> x,y=y,x+y

Chapitre 2 Notion de variable en informatique 28 / 28

Références

Documents relatifs

 Une fois qu’un type de données est associé à une variable le contenu de cette variable doit obligatoirement être du même

PROBABILITES ET JEU D'ARGENT : voir fichier Exercices espérance de gain - corrigés en vidéo Remarque : par extension on parle souvent d'espérance de gain pour les jeux d'argent.. U

4. Citer des exemples d’espèces chimique mises en solution lors de la préparation de ce diabolo menthe. Elles constituent des solutés. On dispose de 4 tubes à essai contenant

Dénombrer, c’est compter le nombre d’éléments que contient un ensemble fini, c’est à dire en déterminer le

[r]

Ecris sur ta copie les valeurs de x que tu as trouvées : c’est

Surligne sur l’axe des abscisses les intervalles qui correspondent aux morceaux de la courbe surlignés. Etape

Le seuil de rentabilité est le niveau de chiffre d'affaires pour lequel l'entreprise ne fait ni bénéfice ni perte. Il représente donc le chiffre d'affaires minimum à atteindre