Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Imutabilidade de String | Strings
Quizzes & Challenges
Quizzes
Challenges
/
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

Awesome!

Completion rate improved to 3.45

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