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

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ê 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
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

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)
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 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?

question mark

Qual linha tenta modificar uma string no local e irá gerar um 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 people make when working with immutable strings?

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

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ê 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
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

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)
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 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?

question mark

Qual linha tenta modificar uma string no local e irá gerar um 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