📜 Tipos de Objetos em Python - Strings
 
    🔤 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:
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'
    >>> 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'
    ➕ 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
    
Post a Comment