Փոփոխականների տիրույթ

Մենք կարող ենք հայտարարել փոփոխականներ ֆունկցիաների մեջ, որոնք հասանելի չեն լինի ֆունկցիայից դուրս։ Կամ կարող ենք հայտարարել փոփոխականներ, որոնք կունենան նույն անունը, ինչ ֆունկցիաներից դուրս փոփոխականները, և Python-ը դրանք կհամարի լրիվ տարբեր փոփոխականներ.
name = 'Helen'
def greet():
    name = 'Bob'
    print('Hi', name)

greet()                  # Hi Bob
print('Outside:', name)  # Outside: Helen
Այստեղ name փոփոխականը հայտարարված է greet() ֆունկցիայի մեջ և հասանելի է մինչև ֆունկցիայի բլոկի ավարտը։ Այն փոփոխականները, որոնք հայտարարված են ինչ-որ բլոկի մեջ սովորաբար ընդունված է անվանել լոկալ/local։ Այն պահին, երբ ծրագիրը դուրս է գալիս ֆունկցիայից, «մոռանում է» բոլոր այն փոփոխականների մասին, որոնք հայտարարվել էին տվյալ ֆունկցիայի մեջ։
Փոփոխականներին հասանելիություն ունենալու համար և դրանց փոփոխելու համար մենք կարող ենք օգտագործել global հրամանը։ Այն հուշում է Python-ին, որ տվյալ փոփոխականը գլոբալ է։
name = 'Helen'
def greet():
    global name
    name = 'Bob'
    print('Hi', name)

greet()                  # Hi Bob
print('Outside:', name)  # Outside: Bob
Այս դեպքում greet() ֆունկցիան փոփոխում է name փոփոխականը, որը գլոբալ է։ Ֆունկցիան 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