Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2025

ProgramaçãoLinguagens de programação
Código
ce194805
Banca
CESPE / CEBRASPE
Órgão
ANM
Ano
2025
Nível
Superior
Cargo
Especialista em Recursos Minerais - Especialidade: Geologia, Geografia, Geofísica, Engenharia de Minas, Agrônoma, Florestal, Civil, Ambiental, Arquitetura ou Tecnologia da Informação
Imagem da questão
Considerando o script Python que precedente, julgue o próximo item.A função replace() modifica diretamente a string armazenada na variável texto, substituindo incrível por fantástico permanentemente.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Python: imutabilidade das strings e o método replace()

Gabarito: letra E (ERRADO). Em Python, strings são imutáveis: o método replace() não altera a string original — ele retorna uma nova string com as substituições aplicadas. Para que a variável texto fosse modificada, seria necessário reatribuir o resultado: texto = texto.replace("incrivel", "fantastico"). Como o script mostrado apenas chama texto.replace(...) sem atribuir o retorno a nenhuma variável, a string original permanece intacta.

O conceito central aqui é a imutabilidade de certos tipos de dados em Python. Strings, números inteiros, números de ponto flutuante e tuplas são imutáveis — uma vez criados, seus valores não podem ser alterados. Qualquer operação que aparentemente "modifica" uma string, na verdade, cria um novo objeto string. Isso é diferente de tipos mutáveis, como listas e dicionários, que podem ser alterados in-place.

Quando você chama texto.replace("incrivel", "fantastico"), o interpretador Python:

  1. Cria uma nova string contendo o resultado da substituição.

  2. Retorna essa nova string como resultado da expressão.

  3. Não modifica a string original texto.

Se o resultado não for atribuído a uma variável (como no script), ele é simplesmente descartado. A variável texto continua apontando para a string original "Python é incrivel".

Vejamos um exemplo prático:

texto = "Python é incrivel"
novo_texto = texto.replace("incrivel", "fantastico")
print(texto)       # Saída: Python é incrivel
print(novo_texto)  # Saída: Python é fantastico

Aqui, novo_texto recebe a nova string, enquanto texto permanece inalterado. Para modificar a variável original, seria necessário reatribuir:

texto = texto.replace("incrivel", "fantastico")
print(texto)  # Saída: Python é fantastico

A pegadinha da banca está em afirmar que replace() "modifica diretamente" a string. Isso é uma confusão comum entre linguagens com strings mutáveis (como C++ ou JavaScript em alguns contextos) e Python, onde strings são imutáveis. O candidato que conhece a imutabilidade das strings em Python identifica imediatamente o erro.

NÃO CAIA NESSA!

A banca explora a confusão entre strings mutáveis e imutáveis. Em Python, replace() não modifica a string original — ela retorna uma nova string. O candidato que pensa em linguagens como C++ ou JavaScript (onde strings podem ser mutáveis em certos contextos) tende a marcar "Certo". Lembre-se: em Python, para que a alteração "pegue", é obrigatório reatribuir o resultado à variável.

  1. 1Chama replace()
  2. 2Cria nova string
  3. 3Retorna resultado
  4. 4Original intacta
LEVEL · soulevel.com.br

Alternativa C — ❌ Incorreta

Afirma que replace() modifica diretamente a string armazenada em texto, substituindo "incrivel" por "fantastico" permanentemente. Isso é falso porque strings em Python são imutáveis. O método replace() retorna uma nova string com a substituição, mas não altera a original. No script, o resultado da chamada texto.replace(...) não é atribuído a nenhuma variável, então a string original permanece "Python é incrivel". Para que a modificação fosse permanente, seria necessário texto = texto.replace("incrivel", "fantastico").

Alternativa E — ✅ Correta ⟵ GABARITO

A afirmação está correta ao dizer que a função replace() não modifica diretamente a string. Ela retorna uma nova string com as substituições, mas a string original permanece inalterada. Isso decorre da imutabilidade das strings em Python. O script mostrado apenas chama replace() sem atribuir o resultado, então a variável texto continua com o valor original "Python é incrivel".

Gabarito: letra E (ERRADO) — a afirmação de que replace() modifica diretamente a string é incorreta, pois strings são imutáveis em Python.

Link permanente: /questoes/ce194805