Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2025
Programação›Linguagens 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
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.
CCerto
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:
Cria uma nova string contendo o resultado da substituição.
Retorna essa nova string como resultado da expressão.
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.
1Chama replace()
2Cria nova string
3Retorna resultado
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.