Imutabilidade de String
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" realizada, 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 por í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
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
"Modificar" Criando uma Nova String
Utilize fatiamento, replace ou concatenação para produzir um novo valor.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dAta" print(s)
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)
Você aprenderá mais padrões de junção/ formatação no próximo capítulo.
1. Qual linha tenta modificar uma string no local e irá gerar um erro?
2. Qual será a saída do código?
3. É necessário montar uma string longa a partir de muitos pequenos pedaços. Qual é a recomendação?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain why string immutability is important in Python?
What are some common mistakes people make when working with immutable strings?
Can you show more examples of efficient string building?
Incrível!
Completion taxa melhorada para 5.26
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" realizada, 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 por í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
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
"Modificar" Criando uma Nova String
Utilize fatiamento, replace ou concatenação para produzir um novo valor.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dAta" print(s)
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)
Você aprenderá mais padrões de junção/ formatação no próximo capítulo.
1. Qual linha tenta modificar uma string no local e irá gerar um erro?
2. Qual será a saída do código?
3. É necessário montar uma string longa a partir de muitos pequenos pedaços. Qual é a recomendação?
Obrigado pelo seu feedback!