Область видимости переменных

При написании функций мы можем иметь переменные, объявленные внутри тела функции. Например, если переменная name объявлена в функции, она считается новой переменной, которая полностью отличается от той, что объявлена вне функции:
name = 'Helen'
def greet():
    name = 'Bob'
    print('Hi', name)

greet()                  # Hi Bob
print('Outside:', name)  # Outside: Helen
Переменная name объявлена в функции greet(), и ее область видимости простирается до конца этой функции. Переменные, объявленные внутри определенной области, обычно называются локальными переменными. Как только программа выходит из функции, она "забывает" об этой переменной.
Чтобы получить доступ и изменить переменные вне текущей области видимости, мы можем использовать ключевое слово global, чтобы сообщить Python, что мы хотим рассматривать эту переменную как глобальную:
name = 'Helen'
def greet():
    global name
    name = 'Bob'
    print('Hi', name)

greet()                  # Hi Bob
print('Outside:', name)  # Outside: Bob
В этот раз функция greet() изменила глобальную переменную name и установила ее значение в Bob.

Задача

Дана следующая функция. Попробуйте найти ошибку и исправить ее. Функция должна возвращать сумму значений, переданных ей до текущего момента.
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