📜 Strings em Python

📜 Tipos de Objetos em Python - Strings

Exemplo Python

🔤 Strings

Strings são os objetos que Python oferece para trabalhos com texto. As strings em Python são sequências, e por isso podemos trabalhar com elas com muito mais eficiência do que em outras linguagens.

>>> palavra = 'termodinâmica'
>>> palavra
'termodin\xe2mica'

Este estranho 'termodin\xe2mica' é a maneira como Python salvou o valor do objeto "palavra" na memória, já que o computador não conhece caracteres estranhos como acentos. Mas não se preocupe, isso só faz sentido para a máquina. Para o usuário, o valor salvo continua sendo "termodinâmica". Para ver isso:

>>> print palavra
'termodinâmica'

🎯 Indexação de Strings

Em Python, uma string é uma sequência de letras, endereçada de tal forma que você possa requisitar um valor qualquer desta sequência. Como qualquer sequência em Python, os endereçamentos começam a ser contados do zero. A sintaxe para requisitar o valor atribuído a um endereço X de uma sequência S é S[X]:

>>> palavra[2]
'r'
>>> 2*palavra[0]
'tt'

✂️ Fatiamento de Strings

Você também pode solicitar um intervalo de uma sequência. Por exemplo, para solicitar os valores da sequência "palavra" que estão entre os endereços 9 e 12:

>>> palavra[9:12]
'mic'

Para entender melhor o que aconteceu aqui, lembre-se de que os endereços em Python se referem aos intervalos entre os itens, e não ao item em si. Isto é, o endereçamento usado no objeto 'palavra' é o seguinte:

t e r m o d i n â m i c a
0 1 2 3 4 5 6 7 8 9 10 11 12 13

Assim fica fácil entender porque palavra[9:12] retorna os itens m, i e c.

Podemos omitir o endereço da direita, se ele for o último da sequência:

>>> palavra[9:]
'mica'

Da mesma forma, os valores entre o primeiro endereço (0) e o 9 são:

>>> palavra[0:9]
'termodin\xe2'
>>> palavra[:9]
'termodin\xe2'
>>> print palavra[:9]
'termodinâ'

🔄 Fatiamento com Incremento

Se você não deseja recolher todos os valores da sequência contidos no intervalo, pode determinar um incremento:

>>> palavra[1:8]
'ermodin'
>>> palavra[1:8:2]
'emdn'

Assim são retornados os valores de palavra entre os endereços 1 e 8, com incremento 2 (ou seja, os elementos dos endereços 1, 3, 5 e 7). Veja um exemplo com incremento 3:

>>> palavra[1:8:3]
'eon'

Com incremento negativo, é possível varrer uma sequência de trás para frente:

>>> palavra[7:0:-1]
'nidomre'
>>> palavra[7::-1]
'nidomret'
📌 Observação: Quando omitimos o primeiro ou último endereço com incremento negativo, o Python assume o início ou fim da string, respectivamente.
>>> palavra[:4:-2]
'ai\xe2i'

Se podemos omitir o último e o primeiro endereços, então fica fácil inverter uma sequência qualquer:

>>> palavra[::-1]
'acim\xe2nidomret'

Talvez você já tenha pensado como isso deve ser interessante para verificar se uma palavra é um palíndromo:

>>> palindromo = 'socorram me subi no onibus em marrocos'
>>> palindromo[::-1]
'socorram me subino on ibus em marrocos'
ℹ️ Definição: Palíndromos são palavras ou sentenças que são iguais tanto se lidas de trás para frente quanto no sentido normal.

➕ Concatenação

Quando executado sobre strings, o operador "+" significa "concatenação", isto é, adição ao final da string anterior.

>>> palavra = palavra + ' aplicada'
>>> print palavra
'termodinâmica aplicada'
>>> palavra[14:]
'aplicada'

📏 Tamanho da String

Outra função que podemos executar sobre qualquer sequência em Python é len(x), que retorna o tamanho da sequência x.

>>> len(palavra)
22

Nenhum comentário

Tecnologia do Blogger.