testovac.sk

Scope

Premenné môžu byť lokálne alebo globálne.

# GLOBALNE PREMENNE su definovane (je do nich prvy krat nieco vlozene)
# niekde mimo funkcie, taze napriklad toto 'x' a 'y' su GLOBALNE:
x = 100
y = 200

# LOKALNE PREMENNE su definovane vo funkcii a platia iba vo funkcii
# napriklad premenna 'm' je LOKALNA, aj parametre funkcie 'p1' a 'p2' su LOKALNE
def funkcia(p1, p2):
    m = p1 + p2

# UKAZKA 01 - lokalna premenna sa po ukonceni prace funkcie vymaze
funkcia(10,20)  # funkcia si vytvori LOKALNE 'm' ktore potom aj vymaze
print(m)        # toto sposobi chybu NameError: name 'm' is not defined
                # pretoze print sa snazi najst GLOBALNU premennu 'm' a taka neexistuje


# UKAZKA 02 - vo funkcii mozeme citat hodnoty globalnych premennych
x = 20
def funkcia_02(a,b):
    vysledok = a + b + x    # tu mozeme pouzit GLOBALNE 'x' - hodnotu z neho len citame
    return vysledok

# UKAZKA 03 - LOKALNA a GLOBALNA premenna mozu mat rovnaky nazov
# v tom pripade pouziva funkcia LOKALNU premennu
def funkcia_03(a):
    x = 5   # vytvarame LOKALNU premennu 'x', ktora 'zakryje' GLOBALNE 'x'
    return a + x
x = 50
v = funkcia_03(5)
print(v)    # vypise 15
print(x)    # vypise 50, GLOBALNA premenna nebola zmenena ani ked sme zavolali funkciu!

# UKAZKA 04 - aj globalnu premennu mozeme upravovat (zapisovat do nej) vnutri funkcie
# aby funkcia pouzivala GLOBALNU premennu a nevytvorila LOKALNU, musime jej to povedat
def funkcia_04(a):
    global x    # pouzivame GLOBALNE 'x', ak ho upravime, upravi sa GLOBALNE
    x = x + a   # upravujeme GLOBALNE x

x = 10
funkcia_04(100)
print(x)        # vypise 110