Alcance de las variables

Al escribir funciones, podríamos tener variables que se declaran dentro del cuerpo de una función. Por ejemplo, si una variable name se declara en la función, se considera una nueva variable, que es totalmente diferente de la que se declaró fuera de la función:
name = 'Helen'
def greet():
    name = 'Bob'
    print('Hi', name)

greet()                  # Hi Bob
print('Outside:', name)  # Outside: Helen
La variable name se declara en la función greet() y su alcance dura hasta el final de la función. A las variables declaradas dentro de algún ámbito generalmente se les llama variables locales. Tan pronto como el programa sale de la función, "olvida" esa variable.
Para acceder y modificar las variables fuera del ámbito actual, podemos usar la palabra clave global para decirle a Python que queremos tratar esa variable como global:
name = 'Helen'
def greet():
    global name
    name = 'Bob'
    print('Hi', name)

greet()                  # Hi Bob
print('Outside:', name)  # Outside: Bob
Esta vez, la función greet() modificó la variable global name y cambió su valor a Bob.

Desafío

Dada la siguiente función, intenta encontrar el error y corregirlo. La función debería devolver la suma de los valores pasados hasta el momento.
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