Strings em Python: criar, acessar, fatiar e manipular texto
Este tutorial foi traduzido do original em inglês.Read in EnglishLeer en españolЧитать на русскомอ่านภาษาไทยAvisar sobre um erro de tradução
Pense no seu celular. Quase tudo o que você vê na tela é texto: nomes nos contatos, mensagens de amigos, resultados de busca, notificações. Nos bastidores, todo esse texto é tratado com strings.
Uma string é a forma como o Python guarda e trabalha com texto. Pode ser uma única letra, uma frase inteira ou até um livro inteiro. Se é texto, é uma string.
Neste tutorial, você vai aprender a criar strings, pegar caracteres específicos, fatiar strings, juntá-las e verificar o que há dentro delas. São habilidades que você vai usar em quase todo programa Python que escrever.
O que são strings em Python?
Uma string é uma sequência de caracteres entre aspas. Você pode usar aspas simples, aspas duplas ou aspas triplas. O Python trata todas elas como strings.
Pense numa string como um colar de contas. Cada conta é um caractere. As aspas são o fecho que mantém o colar inteiro.
Hello, world! Hello, world! Roses are red, Violets are blue, Python is awesome, And so are you.
Aspas simples e aspas duplas funcionam exatamente do mesmo jeito. O principal motivo de existirem as duas é a praticidade: se o seu texto contém um tipo de aspas, você pode envolvê-lo com o outro.
It's a beautiful day <div class="container">Hello</div>
Até um par de aspas vazio cria uma string. Uma string vazia tem zero caracteres, mas continua sendo uma string válida.
<class 'str'> 0 1
Como acessar caracteres individuais de uma string?
Cada caractere de uma string tem um número de posição chamado índice. Você pode pegar qualquer caractere colocando o índice dele entre colchetes.
Agora a parte importante: o Python começa a contar do 0, não do 1. O primeiro caractere está no índice 0, o segundo no índice 1, e assim por diante. Isso se chama indexação a partir de zero.
P y n
Pense nos índices de uma string como os números das casas de uma rua. A primeira casa é a de número 0, não a de número 1. Parece estranho no começo, mas você se acostuma rápido.
O que são índices negativos em Python?
O Python também permite contar de trás para frente, a partir do fim, usando índices negativos. O último caractere está no índice -1, o penúltimo no -2, e assim por diante.
n o P
Como funciona o fatiamento de strings em Python?
A indexação pega um caractere. O fatiamento (slicing) pega um pedaço com vários caracteres. É como cortar uma fatia do meio de um pão.
A sintaxe é string[start:stop]. Ela pega os caracteres a partir de start até stop, mas sem incluir a posição de parada. Essa regra do "até, mas sem incluir" é uma das coisas mais importantes para lembrar.
Hello World H
Você pode deixar de fora o início ou o fim. Sem o início, o Python começa do primeiro caractere. Sem o fim, ele vai até o final da string.
Hello World! Hello, World!
Como funciona o passo (step) no fatiamento?
Existe um terceiro número que você pode acrescentar: string[start:stop:step]. O passo (step) define o tamanho do salto de um caractere para o próximo. Um passo de 2 pega um caractere sim, outro não.
acegi adgj bdfh
O uso mais famoso do passo é inverter uma string. Um passo de -1 percorre a string inteira de trás para frente.
nohtyP racecar
Como juntar strings em Python?
Concatenação significa juntar strings. Em Python, você usa o operador +. É como encaixar duas peças de LEGO para formar algo maior.
Ada Lovelace Hello, world!
A repetição usa o operador *. Ele repete uma string um certo número de vezes. Isso é surpreendentemente útil para criar separadores, padrões ou preenchimentos.
HaHaHa ------------------------------ abc abc abc abc My Report =========
Como descobrir o tamanho de uma string?
A função len() informa quantos caracteres há em uma string. Isso inclui letras, números, espaços e caracteres especiais. Todo caractere conta.
13 5 0 n
Como verificar se um texto existe dentro de uma string?
O operador in verifica se uma string aparece dentro de outra. Ele retorna True ou False. É como usar Ctrl+F para procurar uma palavra em um documento.
True False True True
False True User said yes!
O que são caracteres de escape em strings Python?
Alguns caracteres não podem ser digitados diretamente dentro de uma string. Como colocar uma quebra de linha numa string? Ou uma tabulação? Você usa caracteres de escape: sequências especiais que começam com uma barra invertida \.
Line 1 Line 2 Line 3 Name Age City Alice 25 Paris Bob 30 Tokyo File path: C:\Users\Documents She said "hello"
Aqui está uma referência rápida dos caracteres de escape que você mais vai usar:
| Escape | O que faz | Exemplo de saída |
|---|---|---|
\n | Nova linha | Texto em uma nova linha |
\t | Tabulação | Adiciona um espaço de tabulação |
\\ | Barra invertida | Exibe uma única \ |
\" | Aspas duplas | Exibe " dentro de uma string com " |
\' | Aspas simples | Exibe ' dentro de uma string com ' |
Por que não dá para mudar um caractere de uma string em Python?
Strings em Python são imutáveis. Isso significa que, depois que uma string é criada, você não pode mudar nenhum dos caracteres dela. Não dá para trocar uma letra nem corrigir um erro de digitação dentro de uma string que já existe.
Pense numa string como um livro impresso. Você pode ler qualquer página, mas não pode apagar uma palavra e escrever outra no lugar. Se quiser mudar algo, precisa imprimir um livro novo.
Error: 'str' object does not support item assignment
Então, como "mudar" uma string? Você cria uma string nova com as mudanças que quer. O fatiamento e a concatenação servem exatamente para isso.
word = "Hello"
word[0] = "J" # TypeError!word = "Hello"
new_word = "J" + word[1:]
print(new_word) # JelloExercícios práticos
Hora de praticar! Estes exercícios cobrem tudo o que você viu neste tutorial. Eles começam tranquilos e vão ficando mais desafiadores.
Tente resolver cada um antes de olhar as dicas. Errar e ler as mensagens de erro é como você realmente aprende.
Você recebe duas variáveis: first_name com o valor "Ada" e last_name com o valor "Lovelace". Crie uma variável chamada greeting que junte as duas em uma mensagem e depois exiba essa mensagem.
Saída esperada:
Hello, Ada Lovelace! Welcome to Python.Use concatenação de strings (+) para montar a saudação.
Você recebe uma variável word com o valor "Programming". Exiba o primeiro e o último caractere, cada um em uma linha.
Saída esperada:
P
gUse indexação de strings para acessar cada caractere.
Você recebe uma variável text com o valor "Python". Exiba a string invertida.
Saída esperada:
nohtyPUse fatiamento para invertê-la em um único passo.
Sem executar o código, preveja o que cada linha vai exibir. Lembre-se: o fatiamento usa [start:stop], e o stop fica de fora.
Escreva suas previsões como comentários e depois execute o código para conferir.
Este código tenta corrigir um erro de digitação mudando um caractere diretamente. Mas strings são imutáveis, então ele falha.
Corrija o código para que ele exiba:
Hello WorldCrie uma string nova em vez de modificar a antiga.
Você recebe uma sentence (frase) e uma search_word (palavra buscada). Verifique se a palavra buscada aparece na frase (sem diferenciar maiúsculas de minúsculas) e exiba o resultado.
Saída esperada:
TrueDeixe as duas no mesmo formato (tudo em minúsculas, por exemplo) antes de verificar.
Você recebe um endereço de e-mail guardado em email. Extraia só o nome do domínio (a parte depois do símbolo @) e exiba-o.
Saída esperada:
gmail.comUse o método .find() para localizar o símbolo @ e depois use fatiamento para extrair tudo o que vem depois dele.
Resumo: strings em Python
Aqui está uma referência rápida de tudo o que você aprendeu:
| Conceito | Sintaxe | Exemplo |
|---|---|---|
| Criar uma string | "text" ou 'text' | name = "Alice" |
| Indexação | string[i] | "Hello"[0] dá "H" |
| Indexação negativa | string[-i] | "Hello"[-1] dá "o" |
| Fatiamento | string[start:stop] | "Hello"[1:4] dá "ell" |
| Fatiamento com passo | string[::step] | "Hello"[::-1] dá "olleH" |
| Concatenação | + | "Hi" + " there" dá "Hi there" |
| Repetição | * | "Ha" * 3 dá "HaHaHa" |
| Tamanho | len(string) | len("Hello") dá 5 |
| Pertinência | in | "fox" in "a fox" dá True |
| Caracteres de escape | \n, \t, \\ | Caracteres especiais em strings |
Ponto principal: strings são imutáveis. Você pode ler caracteres, fatiar, buscar e combinar strings, mas nunca pode mudar uma string no lugar. Qualquer "mudança" cria uma string totalmente nova.
O que vem a seguir?
Agora que você sabe criar e fatiar strings, é hora de aprender a transformá-las. No próximo tutorial, Métodos de string em Python, você vai conhecer métodos embutidos como .upper(), .replace(), .split() e .strip(), que deixam o trabalho com texto muito mais tranquilo.