Aller au contenu

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.

  1. Qu’affiche le script suivant ?
    🐍 Script Python
    def func(a):
         a += 2.0
         return a
    
    a = func(8.0)
    print(a)
    
📋 Texte
10.0
  1. Qu’affiche le script suivant ?
    🐍 Script Python
    def func(a):
         a += 2.0
         return a
    
    a = 8.0
    func(a)
    print(a)
    
📋 Texte
8.0
  1. 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)
    
📋 Texte
16.0
  1. 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)
    
📋 Texte
10.0
  1. Qu’affiche le script suivant ?
🐍 Script Python
def func(a):
   a += 2.0
   return a

a = 5.0
b = func(a)
print(a, b)
📋 Texte
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 ?

🐍 Script Python
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))

📋 Texte
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.

  1. Qu’affiche le script suivant ?
    🐍 Script Python
    a = [1,2]
    def f2(a):
         a.append(3)
         return 0
    b = f2(a)
    print(a, b)
    
📋 Texte
[1, 2, 3] 0
  1. Qu’affiche le script suivant ?
    🐍 Script Python
    a = [1,2]
    def f2(b):
         b.append(3)
         return 0
    b = f2(a)
    print(a, b)
    
📋 Texte
[1, 2, 3] 0
  1. Qu’affiche le script suivant ?
    🐍 Script Python
    a = [1,2]
    def f2(b):
         b.append(3)
         return b
    b = f2(a)
    print(a, b)
    
📋 Texte
[1, 2, 3] [1, 2, 3]
  1. Qu’affiche le script suivant ?
    🐍 Script Python
    a = [1,2]
    b = a
    b.append(3)
    print("b=",b)
    print("a=",a)
    
📋 Texte
b= [1, 2, 3]
a= [1, 2, 3]
  1. Qu’affiche le script suivant ?
    🐍 Script Python
    a = 1
    b = a
    b = b+1
    print("b=",b)
    print("a=",a)
    
📋 Texte
b= 2
a= 1

Exercice 4 :⚓︎

  1. Quelle est la sortie du programme suivant?
    🐍 Script Python
    x = "extérieur"
    def xRemplace(valeur):
          x = valeur
    xRemplace("intérieur")
    print(x)
    
📋 Texte
extérieur
  1. Quelle est la sortie du programme suivant?
    🐍 Script Python
    def xRemplace(valeur):
         global x
         x = valeur
    
    x = "extérieur"
    xRemplace("intérieur")
    print(x)  
    
📋 Texte
intérieur

Exercice 5 :⚓︎

Quelle est la sortie du programme suivant?

🐍 Script Python
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)

📋 Texte
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

🐍 Script Python
a = [1,2]
def f2(a):
     a.append(3)

f2(a)
print(a)

Code 2

🐍 Script Python
a = [1,2]
def f2(a):
     a += [3]

f2(a)
print(a)

Code 3

🐍 Script Python
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].