Computação Múltipla Escolha

Considere o seguinte fragmento de código-fonte escrito na linguagem Python: def foo(a): return a + a + a b = 1 foo(b) foo(b) foo(b) Após a execução de todos esses códigos, qual é o valor a ser mostrado mediante o comando abaixo? print(b)

Considere o seguinte fragmento de código-fonte escrito na linguagem Python:

def foo(a):
return a + a + a

b = 1

foo(b)
foo(b)
foo(b)

Após a execução de todos esses códigos, qual é o valor a ser mostrado mediante o comando abaixo?

print(b)

  1. 0
  2. 1
  3. 3
  4. 6
  5. 9

Resolução completa

Explicação passo a passo

B
Alternativa B

Alternativa B - 1

Para entender por que o valor impresso é 1, precisamos analisar como o Python trata variáveis e funções no contexto apresentado.

Análise do Código

O código pode ser dividido em três partes principais: definição da função, atribuição inicial e execução das chamadas.

  1. Definição da Função:
    def foo(a):
        return a + a + a

A função foo recebe um parâmetro a, realiza uma operação matemática (a * 3) e retorna o resultado. Importante: a função não altera o valor da variável passada como argumento, ela apenas devolve um novo valor que precisa ser armazenado explicitamente.

  1. Inicialização da Variável:
    b = 1

A variável b recebe o valor inteiro 1.

  1. Execução das Chamadas:
    foo(b)
    foo(b)
    foo(b)

Aqui ocorrem três chamadas à função passando o valor de b (que é 1).

  • Cada chamada calcula 1 + 1 + 1 = 3.
  • Porém, o resultado (3) não é atribuído a nada. Ele é calculado e descartado.
  • Como não houve comando b = foo(b), o valor original de b permanece inalterado.
  1. Impressão Final:
    print(b)

Como b nunca mudou desde sua inicialização, o valor impresso continua sendo o inicial.

Resumo Lógico

AçãoEfeito sobre b
b = 1b passa a valer 1
foo(b)Calcula 3, mas não guarda. b continua valendo 1
foo(b)Calcula 3, mas não guarda. b continua valendo 1
foo(b)Calcula 3, mas não guarda. b continua valendo 1
print(b)Exibe 1

Muitos candidatos podem errar achando que as chamadas da função somam ao valor de b, mas isso só aconteceria se houvesse uma reatribuição explícita (ex: b += foo(b) ou b = foo(b)). Como os números em Python são objetos imutáveis e a função não tem acesso direto para modificar a variável externa sem retornar e reatribuir, o valor original persiste.

Portanto, a alternativa correta é a B.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.