Módulo 19: Entendendo Escopo

Vamos explorar onde as variáveis vivem e trabalham em Python!

Destaque o Escopo

Clique em cada variável usada (não na definição) no código abaixo para identificá-la como Global (definida fora de qualquer função) ou Local (definida dentro de uma função). Abstração: O escopo ajuda a esconder detalhes internos das funções.

global_var = 100  # Variável Global

def my_function(param_var):
    local_var = 50  # Variável Local
    result = local_var + param_var
    print(global_var) # Usando global dentro da função
    return result

output = my_function(10)
print(global_var) # Usando global fora da função
print(output) # Usando a variável que recebeu o retorno
# print(local_var) # Isto causaria um erro! (NameError)

Identifique todas as 6 variáveis usadas!

Preveja a Saída

Olhe o código abaixo. Variáveis com o mesmo nome em escopos diferentes são distintas! O que você acha que será impresso? Digite sua previsão e clique em "Executar & Comparar". Depuração: Prever a saída antes de executar ajuda a encontrar bugs relacionados ao entendimento do escopo.

x = "global"

def outer_func():
    x = "outer local"

    def inner_func():
        x = "inner local"
        print("Dentro da inner_func, x é:", x) # Deve imprimir 'inner local'

    inner_func()
    print("Dentro da outer_func, x é:", x) # Deve imprimir 'outer local'

outer_func()
print("Fora de tudo, x é:", x) # Deve imprimir 'global'

Depure o Escopo

O código abaixo tenta modificar uma variável global de dentro de uma função, mas causa um erro (`UnboundLocalError`). Corrija o código no editor para que ele incremente corretamente a variável global `counter` e imprima o valor `1`. Depuração: Entender erros como `UnboundLocalError` é crucial para corrigir problemas de escopo.

A saída (ou erro) aparecerá aqui...

Módulo 19 Prática Completa!

Excelente trabalho navegando pelos escopos local e global! Você está entendendo como Python organiza e acessa variáveis.
Lembre-se: o escopo ajuda a evitar conflitos de nomes e suporta a Abstração, escondendo detalhes internos. A Depuração de erros de escopo é uma habilidade chave!
Pronto para a Prática Avançada do Módulo 19?