Portée des variables

Lorsque vous écrivez des fonctions, il peut y avoir des variables déclarées à l'intérieur du corps d'une fonction. Par exemple, si une variable name est déclarée dans la fonction, elle est considérée comme une nouvelle variable, totalement différente de celle déclarée en dehors de la fonction :
name = 'Helen'
def greet():
    name = 'Bob'
    print('Hi', name)

greet()                  # Hi Bob
print('Outside:', name)  # Outside: Helen
La variable name est déclarée dans la fonction greet() et sa portée s'étend jusqu'à la fin de la fonction. Les variables déclarées dans une certaine portée sont généralement appelées variables locales. Dès que le programme sort de la fonction, il "oublie" cette variable.
Pour accéder et modifier les variables en dehors de la portée actuelle, nous pouvons utiliser le mot-clé global pour indiquer à Python que nous souhaitons traiter cette variable comme une variable globale :
name = 'Helen'
def greet():
    global name
    name = 'Bob'
    print('Hi', name)

greet()                  # Hi Bob
print('Outside:', name)  # Outside: Bob
Cette fois, la fonction greet() a modifié la variable globale name et a changé sa valeur en Bob.

Défi

Étant donné la fonction suivante, essayez de trouver l'erreur et de la corriger. La fonction doit retourner la somme des valeurs passées jusqu'à présent.
total = 0

def compute_sum(val):
    total = total + val
    return val

print(compute_sum(10))
print(compute_sum(20))
print(compute_sum(30))
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue