Carregando...

Escopo do nome

mark põe cups em 2 e escreve cups. Esse nome só vale enquanto mark() está a correr. Quando mark() acaba, você já não pode usar cups.

print tem quatro espaços de recuo e por isso faz parte de mark. mark() fica à altura de def.

cups só existe em mark()

python
def mark():
    cups = 2
    print(cups)

mark()

O ecrã mostra 2. Foi o print que escreveu esse valor, enquanto mark() corria. Se puser print(cups) a seguir, o programa para. Não é o recuo. cups já não está lá.

drink = "tea" está acima de def. Se mark não criar drink e só fizer print(drink), saem dois tea. As duas linhas usam o mesmo drink.

Se escrever drink = "water" dentro de mark, o drink por cima da função continua tea. water só vale enquanto mark() corre.

water em mark, tea por cima

python
drink = "tea"

def mark():
    drink = "water"
    print(drink)

mark()
print(drink)

Primeiro sai water, depois tea. water vem do print com recuo. tea vem do print à altura de def. O drink por cima da função continua tea.

Dois enganos comuns

Pôr print(cups) por baixo do primeiro programa faz o programa parar. Esse nome só existia em mark. No segundo programa, a segunda linha é tea, não water. Se tirar drink = "water" de mark, saem dois tea e o programa continua.

A página seguinte escreve uma função numa linha. Aqui vemos só até onde um nome vale.

Antes de responder

  1. O que escreve o primeiro programa?
  2. Você põe print(cups) por baixo de mark(). O programa chega ao fim?
  3. O que escreve o segundo programa, primeiro e depois?
  4. Você tira drink = "water" de mark. O que sai?
  5. Onde é que drink é water?

Até onde o nome vale

O primeiro programa escreve 2 porque mark escreve cups. Depois disso cups já não é um nome, e print(cups) faz o programa parar. Se mark só lê drink, saem dois tea. Com drink = "water" dentro de mark, primeiro water e depois tea. Por cima, tea fica.

🧠 Teste Seu Conhecimento

Pronto para Começar

Teste Seu Conhecimento

Desafie-se com este questionário interativo e veja o quão bem você entende o tópico

❓
6
Perguntas
🎯
70%
Para Passar
♾️
∞
Tempo
🔄
∞
Tentativas

📝 Instruções

  • Leia cada pergunta cuidadosamente
  • Selecione a melhor resposta para cada pergunta
  • Você pode refazer o quiz quantas vezes quiser
  • Seu progresso será mostrado no topo