Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Para saber mais: escopo de uma variável

O código funciona parcialmente e gera um erro no final por causa do escopo da variável.

Dentro da função mensagem(), temos a variável saudacao, que é local, ou seja, só existe dentro da função. Já a variável nome foi definida fora da função, sendo global, então pode ser acessada dentro dela.

Quando chamamos:

mensagem()

A saída será:

Olá Daniel

Depois disso, temos:

print(nome)

Que funciona normalmente e imprime:

Daniel

Porém, ao executar:

print(saudacao)

O Python gera um erro:

NameError: name 'saudacao' is not defined

Isso acontece porque saudacao foi criada dentro da função e não existe fora dela.

Conclusão: variáveis locais não podem ser acessadas fora da função onde foram criadas, apenas variáveis globais têm esse alcance.

1 resposta

Olá, Daniel! Como vai?

Parabéns pela explicação detalhada!

Vi que você explorou o escopo de variáveis para demonstrar comportamento em Python, utilizou muito bem o conceito de global para mostrar acessibilidade e ainda compreendeu a importância da variável local para limitar o alcance dentro da função.

Uma dica interessante para o futuro é usar a palavra-chave global quando quiser alterar uma variável definida fora da função. Assim:

nome = "Daniel"

def mensagem():
    global nome
    nome = "Vieira"
    print(f"Olá {nome}")

mensagem()
print(nome)

Isso permite modificar a variável global dentro da função.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Evitar excesso de globais: prefira passar parâmetros para funções.
  • Clareza no escopo: mantenha variáveis locais sempre que possível.
  • Organização: use funções bem definidas para separar responsabilidades.

Ah, uma pergunta: você prefere trabalhar com variáveis locais para manter o código mais organizado ou com variáveis globais para facilitar o compartilhamento de valores?

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!