Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Imutabilidade de String | Strings
Tipos de Dados em Python

bookImutabilidade 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.

123456
s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
copy

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
copy

O encadeamento é permitido, mas lembre-se de que você está obtendo 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
copy

"Modificar" Criando uma Nova String

Utilize fatiamento, replace ou concatenação para produzir um novo valor.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dAta" print(s)
copy

Construção Eficiente

Repetir o uso de + em grandes loops pode ser lento (muitas strings intermediárias). Um padrão comum é coletar partes e juntar tudo de uma vez:

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)
copy
Note
Nota

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 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. Qual é a recomendação?

question mark

Qual linha tenta modificar uma string no local e resultará em erro?

Select the correct answer

question mark

Qual será a saída do código?

Select the correct answer

question mark

É necessário montar uma string longa a partir de muitos pequenos pedaços. Qual é a recomendação?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain why string immutability is important in Python?

What are some common mistakes beginners make with string immutability?

Can you show more examples of efficient string building?

bookImutabilidade 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.

123456
s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
copy

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
copy

O encadeamento é permitido, mas lembre-se de que você está obtendo 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
copy

"Modificar" Criando uma Nova String

Utilize fatiamento, replace ou concatenação para produzir um novo valor.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dAta" print(s)
copy

Construção Eficiente

Repetir o uso de + em grandes loops pode ser lento (muitas strings intermediárias). Um padrão comum é coletar partes e juntar tudo de uma vez:

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)
copy
Note
Nota

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 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. Qual é a recomendação?

question mark

Qual linha tenta modificar uma string no local e resultará em erro?

Select the correct answer

question mark

Qual será a saída do código?

Select the correct answer

question mark

É necessário montar uma string longa a partir de muitos pequenos pedaços. Qual é a recomendação?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 4
some-alt