Imutabilidade de String
Em Python, strings são imutáveis: uma vez criadas, os caracteres que elas contêm não podem ser alterados diretamente. Qualquer "modificação" realizada, na verdade, cria uma nova string. Isso é importante para garantir a correção (evitando alterações acidentais) e para o desempenho (na construção de strings maiores).
Sem Edição Direta
É possível acessar caracteres pelo índice, mas não é permitido atribuir novos 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.
123456name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
Encadeamento é permitido, mas lembre-se de que você está obtendo um novo objeto a cada etapa.
1234msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
"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(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
Construção eficiente
O uso repetido de +
em grandes loops pode ser lento (muitas strings intermediárias). Um padrão comum é coletar partes e juntar uma única vez:
12parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
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 strings are immutable in Python?
What are some common mistakes when working with immutable strings?
How can I efficiently build large strings in Python?
Awesome!
Completion rate improved to 5
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 diretamente. Qualquer "modificação" realizada, na verdade, cria uma nova string. Isso é importante para garantir a correção (evitando alterações acidentais) e para o desempenho (na construção de strings maiores).
Sem Edição Direta
É possível acessar caracteres pelo índice, mas não é permitido atribuir novos 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.
123456name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
Encadeamento é permitido, mas lembre-se de que você está obtendo um novo objeto a cada etapa.
1234msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
"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(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
Construção eficiente
O uso repetido de +
em grandes loops pode ser lento (muitas strings intermediárias). Um padrão comum é coletar partes e juntar uma única vez:
12parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
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!