15 - Exercices Variable
Exercice de l'activité Python Les variables dans Python
Preuve de travail à faire en version papier ou numérique.
1 - Expression ou Instruction
✎ 01° Donner la définition d'expression et d'instruction.
...CORRECTION...
Allez lire le cours !
✎ 02° Pour chacune de ces lignes, dire s'il s'agit d'une expression ou d'une instruction.
>>> a = 5
>>> a + 2
>>> b = a + 4
>>> t = [4, 40, 3]
>>> len(t)
>>> c = t[0] + t[1]
>>> c = c + 1
>>> import Turtle
...CORRECTION...
>>> a = 5 # Instruction (affectation)
>>> a + 2 # Expression
>>> b = a + 4 # Instruction (affectation)
>>> t = [4, 40, 3] # Instruction (affectation)
>>> len(t) # Expression
>>> c = t[0] + t[1] # Instruction (affectation)
>>> import Turtle # Instruction (on importe des choses en mémoire)
2 - Gestion des variables
✎ 03° Donner les modifications de mémoire ou les affichages provoqués par ce programme.
1
2
3
4
5
6
7 |
|
...CORRECTION...
1
2
3
4
5
6
7 |
|
✎ 04° Comment intervertir les contenus d'une variable x contenant 50 et une variable y contenant 100 ? Utiliser la méthode en plusieurs lignes.
...CORRECTION...
>>> x = 50
>>> y = 100
>>> temp = x
>>> x = y
>>> y = temp
>>> x
100
>>> y
50
✎ 05° Comment intervertir les contenus d'une variable x contenant 50 et une variable y contenant 100 en une seule ligne ?
...CORRECTION...
>>> x = 50
>>> y = 100
>>> x, y = y, x
>>> x
100
>>> y
50
3 - Locale ou globale
✎ 06° Un élève pense que son programme permet de récupérer la somme des nombres envoyés à la fonction.
1
2
3
4
5
6
7 |
|
Question : indiquer les variables qui sont locales et les variables qui sont globales.
...CORRECTION...
1
2
3
4
5
6
7 |
|
✎ 07° Modifier mentalement les noms des variables et justifer la valeur de s dans le programme principal après exécution du programme.
1
2
3
4
5
6
7 |
|
...CORRECTION...
1
2
3
4
5
6
7 |
|
En renommant mentalement les variables, on voit clairement que la variable qu'on tente de modifier en ligne 2 est s_so, la variable locale de la fonction.
La variable s_pp n'a donc pas été modifiée et vaut toujours 0.
✎ 08° Questions de cours :
- Une variable globale est-elle permanente ou temporaire ?
- Une variable locale est-elle permanente ou temporaire ?
...CORRECTION...
- Une variable globale est-elle permanente ou temporaire ?
- Une variable locale est-elle permanente ou temporaire ?
Une variable globale est permanente, elle ne disparait pas tant que le programme est en marche.
Une variable locale est temporaire, elle n'est créée que lorsqu'on appelle la fonction et elle est détruite dès que la fonction répond.
✎ 09° Questions de cours :
- Une fonction peut-elle lire une variable globale ?
- Une fonction peut-elle modifier une variable globale ?
- Le programme principal peut-il lire une variable locale à une fonction ?
- Le programme principal peut-il modifier une variable locale à une fonction ?
...CORRECTION...
- Une fonction peut-elle lire une variable globale ?
- Une fonction peut-elle modifier une variable globale ?
- Le programme principal peut-il lire une variable locale à une fonction ?
- Le programme principal peut-il modifier une variable locale à une fonction ?
Oui, une fonction peut lire une variable globale.
Non, pas de modification possible.
Non, car cette variable n'existe que le temps que la fonction fonctionne. Or l'instruction dans le programme se situe avant l'appel ou après l'appel...
Non, car cette variable n'existe que le temps que la fonction fonctionne. Or l'instruction dans le programme se situe avant l'appel ou après l'appel...
✎ 10° Voici un nouveau programme, proche mais pas similaire.
1
2
3
4
5
6
7
8 |
|
Question : modifier mentalement les noms des variables en vous demandant si elles sont locales ou globale. Exécuter le programme et donner la valeur de s en fin de programme.
...CORRECTION...
1
2
3
4
5
6
7
8 |
|
En ligne 2, s est bien la variable globale puisqu'une entrée n'est stockée dans une variable notée s et qu'il n'y a aucune affectation sur une variable s dans cette fonction.
Déroulé de l'exécution :
L1(déclaration) - L6 - L7 - L8 - L9 (appel en envoyant 10)
L1(appel, a_loc reçoit 10)
L2 : total_loc reçoit 20, lue depuis la variable globale.
L3 : total_loc incrémentée de 10, pour un total de 30.
L4 : la fonction renvoie total_loc,soit 30.
Retour en L9 et x_pp reçoit 30.
On notera que toutes les variables locales ont été détruites et n'existent plus.
FIN
Activité publiée le 15 11 2023
Dernière modification : 15 11 2023
Auteur : ows. h.