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.

123456
name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
copy

Encadeamento é permitido, mas lembre-se de que você está obtendo um novo objeto a cada etapa.

1234
msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
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(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
copy

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:

12
parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
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 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

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.

123456
name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
copy

Encadeamento é permitido, mas lembre-se de que você está obtendo um novo objeto a cada etapa.

1234
msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
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(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
copy

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:

12
parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
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