Numérique et Sciences Informatiques • 1ère

Portée et variables

Définitions
Portée = Zone de visibilité d'une variable
Règles de visibilité des variables dans le code
Variable locale :
Définie dans une fonction
Visible uniquement dans cette fonction
Disparaît après exécution de la fonction
Variable globale :
Définie au niveau principal
Visible dans tout le programme
Existe pendant toute l'exécution
Règles de portée
🔒
Une fonction ne voit pas ses variables locales
🌍
Une fonction peut lire les variables globales
⚠️
Éviter les modifications de variables globales
Exemples de portée
# Variable globale
compteur = 0

def increment():
    # Variable locale
    valeur_locale = 1
    global compteur
    compteur += valeur_locale
    
def afficher():
    # Accès à la variable globale
    print(compteur)
    # Erreur : valeur_locale inaccessible ici
    # print(valeur_locale)  # Décommenter pour voir l'erreur

# Appel des fonctions
increment()
afficher()  # Affiche 1
🔍
Règle LEGB : Local → Enclosing → Global → Built-in
🔄
Redéfinition locale masque la variable globale
📋
Mot-clé global pour modifier variable globale
🔧
Mot-clé nonlocal pour variables englobantes
Cas particuliers
🔄
Fonctions imbriquées : portée englobante
📦
Modules : portée au niveau fichier
📚
Classes : portée spécifique aux objets
Bonnes pratiques
🔒
Préférer les variables locales
🌍
Minimiser l'utilisation des variables globales
📝
Documenter clairement les variables globales
🎯
Utiliser des paramètres pour transmettre des données
🔧
Retourner les résultats plutôt que modifier globalement
Erreurs Fréquentes
Erreur 1 :
Essayer d'accéder à une variable locale en dehors de sa fonction
Erreur 2 :
Modifier accidentellement une variable globale
Erreur 3 :
Confusion entre variables locales et globales
Erreur 4 :
Redéfinir une variable globale localement sans le vouloir
Méthodes de gestion
Variables globales :
Utiliser des constantes pour les valeurs fixes
Limiter au strict nécessaire
Documenter leur utilisation
Variables locales :
Privilégier pour les calculs temporaires
Nommer clairement leur usage
Limiter leur durée de vie
Structure du code Génie logiciel