Blog

Postado em em 2 de março de 2023

Pedaços de Texto no Python

Aprenda hoje a extrair pedaços de texto no Python! Nós também vamos falar sobre o Step, um recurso interessante, porém, pouco usado.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Pedaços de Texto no Python

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Fala Impressionadores! Você sabe como cortar textos no Python? Ou até mesmo como obter pedaços de texto no Python?

Nessa aula eu quero te mostrar como trabalhar com textos no Python, até porque o tratamento de textos é muito comum em bases de dados.

Primeiro eu vou te mostrar como cortar pedaços de textos no Python, depois vou te mostrar como usar posição final de textos, ou seja, podemos iniciar a nossa busca/corte do final do texto.

Vale lembrar que um texto é uma lista de caracteres, então tudo que está no texto vai ter uma posição, mesmo que não seja uma letra.

Então pode ser uma vírgula, ponto, caractere especial, etc.

Feito isso eu vou te mostrar como obter textos intermediários no Python, ou seja, informações que estão no meio do texto e não no início ou no fim.

Por fim, vou te mostrar como usar a posição inicial e final com Step no Python, ou seja, como usar um passo para obter suas informações.

Isso quer dizer que você pode obter os caracteres a cada 2, então vai pular 1 deles. Pode trazer a cada 3 e assim por diante!

E aí? Gostou? Então bora para a aula!

Vamos supor que você possui um e-mail com valores que devem ser acrescidos aos produtos nos próximos meses.

Neste caso vai existir um aumento significativo nos produtos, porém, não será feito de uma vez, a cada mês um acréscimo será feito e esses valores estão em um e-mail.

Nosso objetivo é extrair do texto esses valores referentes aos meses do meu código.

No Python cada letra ou ponto do texto é um caractere e cada caractere é contado a partir do zero, assim, se pegarmos em um texto de 1 a 10 os caracteres de [0:2] vamos ter como resposta o caractere 0 e 1. Você deve estar pensando, por que não o zero o um e o dois?

No Python o último valor que você indica nas chaves é exclusivo, ou seja, ele é excluído, não vem na resposta, vem todos os caracteres até antes do último número indicado nas chaves logo após os dois pontos.

Exemplo:

precos = "Jan: 25, Fev: 27, Mar: 29"

preco_jan = precos[0:6]

print(preco_jan)

Resultado -> Jan: 2

Agora que entendemos a lógica, para pegar somente o valor do mês de janeiro (25) vamos colocar nas chaves [5:7] 5 até 7, porque 5 equivale ao número 2 que é inclusivo e 7 equivale à vírgula depois do 5, mas o número depois dos dois pontos é exclusivo, então não vai aparecer.

precos = "Jan: 25, Fev: 27, Mar: 29"

preco_jan = precos[5:7]

print(preco_jan)

Resultado -> 25

Mas e se quisermos pegar as informações do final do texto?

Nesse caso podemos usar o sinal de menos, tornar o número na chave negativo faz o código percorrer o texto de trás para frente

Vamos pegar o valor do mês de março:

precos = "Jan: 25, Fev: 27, Mar: 29"

preco_jan = precos[-2:]

print(preco_mar)

Resultado -> 29

Observe que se em qualquer um dos lados do sinal de dois pontos for deixado vazio, o código considera pegar os caracteres até o final, não é necessário colocar [-2:0] apenas [-2:] é o suficiente para o código entender

Posição inicial e final com Step

Para entender melhor como o step funciona vamos mostrar como funciona o sinal de dois pontos (:) sozinho:

codigo = "1.2.3.4,5,1,2.3.4,7.9"

pedaco_cod = codigo[:]

print(pedaco_cod)

Resultado -> 1.2.3.4,5,1,2.3.4,7.9

Observe que colocando apenas os dois pontos toda a informação do código é dada como resultado.

Se eu quiser retornar essas informações de trás para frente é preciso fazer um step [:: -1]:

codigo = "1.2.3.4,5,1,2.3.4,7.9"

pedaco_cod = codigo[::-1]

print(pedaco_cod)

Resultado -> 9.7,4.3.2,1,5,4.3.2.1

Dessa forma o texto foi invertido e printado de trás para frente

Se eu quiser retirar os pontos e virgulas, intercalando e deixando apenas os números? Como fazer esta construção?

codigo = "1.2.3.4,5,1,2.3.4,7.9"

pedaco_cod = codigo[::-2]

print(pedaco_cod)

Resultado -> 97432154321

Agora vamos pegar do caractere de índice 2 até o caractere de índice 10, sendo 10 exclusivo e pulando de 2 em dois.

codigo = "1.2.3.4,5,1,2.3.4,7.9"

pedaco_cod = codigo[2:10:2]

print(pedaco_cod)

Resultado -> 2345

Lembre-se de que as vírgulas e pontos também devem ser considerados caracteres. Lembre-se disso quando conferir os resultados.

Usar o Step não é tão comum, mas é bom conhecer esta possibilidade e entender seu funcionamento

Vou deixar aqui mais algumas aulas sobre manipulação de textos em Python

Conclusão – Pedaços de Texto no Python

Nessa aula eu te mostrei como retirar pedaços de texto no Python, pois é um tema muito recorrente e importante, principalmente quando estamos trabalhando com bases de texto dentro do Python.

Recomendo que você faça diversos testes usando números negativos e diferentes sequencias para tornar esse conhecimento cada vez mais intuitivo.

Eu fico por aqui! Até a próxima!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer ter acesso a um Minicurso de Finanças no Excel de forma 100% gratuita? Preencha seu e-mail abaixo!