13 Exos Portée Variables Correction
Exercice 1 :⚓︎
Pour chaque question suivante, vous analysez le code écrit, et prédisez la sortie sans le faire exécuter. Puis vous vérifierez en l'exécutant.
- Qu’affiche le script suivant ?
🐍 Script Python
def func(a): a += 2.0 return a a = func(8.0) print(a)
10.0
- Qu’affiche le script suivant ?
🐍 Script Python
def func(a): a += 2.0 return a a = 8.0 func(a) print(a)
8.0
- Qu’affiche le script suivant ?
🐍 Script Python
def carre(val): return val*val def inc(val): return val + 1 a = carre(inc(3.0)) print(a)
16.0
- Qu’affiche le script suivant ?
🐍 Script Python
def carre(val): return val*val def inc(val): return val + 1 a = inc(carre(3.0)) print(a)
10.0
- Qu’affiche le script suivant ?
def func(a):
a += 2.0
return a
a = 5.0
b = func(a)
print(a, b)
5.0 7.0
Exercice 2 :⚓︎
Vous analysez le code écrit, et prédisez la sortie sans le faire exécuter. Puis vous vérifierez en l'exécutant.
Qu’affiche le script suivant ?
def f(x):
return x
y = f(4)
print(y)
g = f(f)
print(g(2))
f = f(3)
print(f)
print(g(5))
print(f(6))
4
2
3
5
# Message erreur
Exercice 3 :⚓︎
Pour chaque question suivante, vous analysez le code écrit, et prédisez la sortie sans le faire exécuter. Puis vous vérifierez en l'exécutant.
- Qu’affiche le script suivant ?
🐍 Script Python
a = [1,2] def f2(a): a.append(3) return 0 b = f2(a) print(a, b)
[1, 2, 3] 0
- Qu’affiche le script suivant ?
🐍 Script Python
a = [1,2] def f2(b): b.append(3) return 0 b = f2(a) print(a, b)
[1, 2, 3] 0
- Qu’affiche le script suivant ?
🐍 Script Python
a = [1,2] def f2(b): b.append(3) return b b = f2(a) print(a, b)
[1, 2, 3] [1, 2, 3]
- Qu’affiche le script suivant ?
🐍 Script Python
a = [1,2] b = a b.append(3) print("b=",b) print("a=",a)
b= [1, 2, 3]
a= [1, 2, 3]
- Qu’affiche le script suivant ?
🐍 Script Python
a = 1 b = a b = b+1 print("b=",b) print("a=",a)
b= 2
a= 1
Exercice 4 :⚓︎
- Quelle est la sortie du programme suivant?
🐍 Script Python
x = "extérieur" def xRemplace(valeur): x = valeur xRemplace("intérieur") print(x)
extérieur
- Quelle est la sortie du programme suivant?
🐍 Script Python
def xRemplace(valeur): global x x = valeur x = "extérieur" xRemplace("intérieur") print(x)
intérieur
Exercice 5 :⚓︎
Quelle est la sortie du programme suivant?
def incremente1(a):
a = a + 1
def incremente2():
global a
a = a + 1
def incremente3():
a = a + 1
a = 734
for k in range(10):
incremente1(a)
print(a)
for k in range(10):
incremente2()
print(a)
for k in range(10):
incremente3()
print(a)
734
744
# Message erreur : spécifiquement pour les instructions du type a = a + 1, la variable est supposée locale.
Exercice 6 :⚓︎
Pour chaque question suivante, vous analysez le code écrit, et prédisez la sortie sans le faire exécuter. Puis vous vérifierez en l'exécutant.
Comparer les 3 scripts suivants :
Code 1
a = [1,2]
def f2(a):
a.append(3)
f2(a)
print(a)
Code 2
a = [1,2]
def f2(a):
a += [3]
f2(a)
print(a)
Code 3
a = [1,2]
def f2(a):
a = a + [3]
f2(a)
print(a)
Le code 1 touche directement à la liste a qui est passée en paramètre et qui pointe vers la même liste que la variable globale. Donc il s'affiche [1, 2, 3].
De même, le code 2 touche directement à la liste a qui est passée en paramètre et qui pointe vers la même liste que la variable globale. Donc il s'affiche [1, 2, 3].
En revanche, le code 3 redéfinit une nouvelle liste a qui ne pointe donc plus vers la même liste que la variable globale. Donc il s'affiche [1, 2].