Àmbit

Ara que s’han vist les variables i els blocs de programes, tant funcions com bucles, podeu estudiar l’abast de les variables.

Les variables externes es poden utilitzar dins dels blocs, però no viceversa. Les variables internes d’un bloc no es poden utilitzar fora del bloc.

Veurem alguns exemples de l’abast de les variables, és a dir, on es poden utilitzar i on no.

Judici `` Global ''

Les variables globals són les que es defineixen al cos del programa no dins de bucles o funcions.

Exemple de variable global

def mensaje():
    print('Número =', numero)

numero = 10
mensaje()
numero = 11
mensaje()

Sortida

Número = 10
Número = 11

En el cas anterior, la variable global "número" es pot llegir dins de la funció "Missatge ()".

Tanmateix, si intentem actualitzar la variable "número" dins del "missatge ()" no funcionarà perquè estem creant dues variables. Una variable serà la variable ** global ** "número" i una altra serà la variable ** local ** "número", que s'anomenen iguals, però són diferents.

Exemple d'una variable global i local del mateix nom que generen un error

def mensaje():
    print('Número =', numero) # variable local no definida (error)
    numero = 11               # variable local

numero = 10 # variable global
mensaje()
mensaje()

Sortida

print('Número =', numero)
UnboundLocalError: cannot access local variable 'numero' where it is
not associated with a value

Per solucionar el problema, hem d’utilitzar el judici `` global '' que declara "número" com a variable global i no local.

Exemple de variable global sense error

def mensaje():
    global numero
    print('Número =', numero)
    numero = 11

numero = 10
mensaje()
mensaje()

Sortida

Número = 10
Número = 11