# Espace local au programme valext = 5 # variable connue dans et hors de la fonction def func(valint): # ici valint <- valext, valint : variable connue seulement dans la fonction # Espace local à la fonction func valint = valint * 2 # valext est connue de func bien que sa déclaration soit à l'extérieure print("Dans la fonction func, valext = ", valext) # REMARQUES # valint = valext * 2 est possible, mais déconseillé par les bonnes pratiques de programmation # valext = valext * 2 est INTERDIT, car on ne peut pas modifier une variable extérieure à l'espace local print("Dans la fonction func, valint * 2 = ", valint," car valint <- valext lors de l'appel") return valint print("Avant l'appel de func, valext = ", valext) valext = func(valext) # valext est connue de func bien que sa déclaration soit à l'extérieure print("Après l'appel de func et l'opération valext = func(valext), valext = ", valext) print(valint) # valint n'est pas connue à l'extérieure de func # Résultat attendu # Avant l'appel de func, valext = 5 # Dans la fonction func, valext = 5 # Dans la fonction func, valint * 2 = 10 # Après l'appel de func et l'opération valext = func(valext), valext = 10 car valint <- valext lors de l'appel # Une exception s'est produite : NameError # name 'valint' is not defined