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.
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.
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
- O que escreve o primeiro programa?
- Você põe print(cups) por baixo de mark(). O programa chega ao fim?
- O que escreve o segundo programa, primeiro e depois?
- Você tira drink = "water" de mark. O que sai?
- 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
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 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