Imutabilidade de String
Deslize para mostrar o menu
Em Python, strings são imutáveis: uma vez criadas, os caracteres que elas contêm não podem ser alterados no local. Qualquer "modificação" feita, na verdade, cria uma nova string. Isso é importante para garantir a correção (evitando edições acidentais no local) e para o desempenho (na construção de strings maiores).
Sem Edições no Local
É possível ler caracteres pelo índice, mas não é possível atribuir valores a eles.
123456s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
A maioria dos métodos de string retorna uma nova string e deixa a original inalterada.
12345678# Cleaning up user input from a registration form user_name = " Alice " user_name.strip() # returns "Alice", but the variable still has spaces print(user_name) # " Alice " user_name = user_name.strip() # assign the cleaned value back print(user_name) # "Alice" → cleaned and ready to store
.strip(): remove espaços em branco no início e no final de uma string.
Sintaxe: string.strip()
O encadeamento é permitido, mas lembre-se de que você obtém um novo objeto a cada etapa.
123456# Normalizing a user's chat message before saving it user_message = " hello\n" clean_message = user_message.strip().upper() print(user_message) # original remains " hello\n" print(clean_message) # "HELLO" → cleaned and ready for processing
.upper(): Retorna uma cópia da string com todos os caracteres em maiúsculas.
Sintaxe: string.upper()
"Modificar" criando uma nova string
Utilize fatiamento, replace ou concatenação para gerar um novo valor.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dATa" print(s)
.replace(): retorna uma cópia da string com todas as ocorrências de um substring substituídas por outro substring.
Sintaxe: string.replace(old, new)
Construção Eficiente
O uso repetido de + em grandes loops pode ser lento (muitos strings intermediários). Um padrão comum é coletar partes e juntar de uma vez só:
1234# Combining message parts received from a device response_parts = ["Status:", " ", "200", "\n", "Success"] response_message = "".join(response_parts) # "Status: 200\nSuccess" print(response_message)
.join(): Concatena elementos de um iterável (como uma lista) em uma única string, separados pela string na qual o método é chamado.
Sintaxe: separator.join([str, str, ...])
Você aprenderá mais sobre padrões de junção/ formatação no próximo capítulo.
1. Qual linha tenta modificar uma string no local e resultará em erro?
2. Qual será a saída do código?
3. É necessário montar uma string longa a partir de muitos pequenos pedaços. O que é recomendado?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo