Escopo de Variáveis

Ao escrever funções, podemos ter variáveis que são declaradas dentro do corpo de uma função. Por exemplo, se uma variável name é declarada na função, ela é considerada uma nova variável, que é totalmente diferente da que foi declarada fora da função:
name = 'Helen'
def greet():
    name = 'Bob'
    print('Hi', name)

greet()                  # Hi Bob
print('Outside:', name)  # Outside: Helen
A variável name é declarada na função greet() e seu escopo dura até o fim da função. Variáveis declaradas dentro de um escopo geralmente são chamadas de variáveis locais. Assim que o programa sai da função, ele "esquece" essa variável.
Para acessar e modificar variáveis fora do escopo atual, podemos usar a palavra-chave global para dizer ao Python que queremos tratar essa variável como global:
name = 'Helen'
def greet():
    global name
    name = 'Bob'
    print('Hi', name)

greet()                  # Hi Bob
print('Outside:', name)  # Outside: Bob
Desta vez, a função greet() modificou a variável global name e mudou seu valor para Bob.

Desafio

Dada a seguinte função, tente encontrar o erro e corrigi-lo. A função deve retornar a soma dos valores passados para ela até agora.
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