09. Strings e Fatiamento#
Extraindo substrings com fatiamento#
A operação de fatiamento permite realizarmos um recorte da string. A sintaxe é semelhante ao acesso a um caractere usando o índice, mas ao invés de um número nós passamos um intervalo:
A semântica é semelhante ao range: o fatiamento inclui o primeiro índice e não inclui o segundo. Assim, no exemplo acima, o fatiamento s[2:4] inclui o índice 2, mas não inclui o 4. Portanto apenas os caracteres nos índices 2 e 3 estão presentes no resultado do fatiamento.
Exercise 1
Answer
Foi impresso 'iam'. Lembrando que, assim como o range, no fatiamento o segundo argumento não conta para o resultado final. Ou seja, a letra 'e' que ocupa o índice 6 não aparece no string retornada pelo comando palavra[3:6].

Alternativamente, podemos omitir um (ou ambos) dos índices:
Exercise 2
Answer
Foi impresso 'Fatia'. Quando o índice inicial começa em 0, podemos omitir o valor. Desta forma, palavra[0:5] é igual ao código palavra[:5]

Exercise 3
Answer
Foi impresso 'mento'. Quando o fatiamento vai até o final da string, podemos omitir o segundo índice.
Desta forma, palavra[5:10] é igual ao código palavra[5:]

Exercise 4
Assim como no range, podemos passar um terceiro argumento opcional para um fatiamento. Esse terceiro argumento indica o tamanho do pulo, ou seja, de quanto em quanto o índice deve ser aumentado (por padrão ele aumenta de 1 em 1). Por exemplo, 'abcdefghij'[0:10:2] vai retornar uma nova string do índice 0 ao 9 pulando de 2 em 2, ou seja, a string 'acegi'.
Exercise 5
Answer
Foi impresso 'aimn'.
O código palavra[1:9:2] faz o fatiamento da string, começando no índice 1, terminando no índice 8, pulando os índices de 2 em 2.

Além do fatiamento, pode ser útil usarmos índices negativos. Os índices negativos tem um efeito semelhante aos índices positivos, mas vão do final para o começo. Por exemplo, o índice -1 é o último elemento, o índice -2 é o penúltimo elemento, o índice -3 é o antepenúltimo elemento, e assim por diante.
No exemplo acima apresentamos uma técnica bastante utilizada para inverter uma string, que é o uso do fatiamento [::-1]. Ele pode ser útil em alguns exercícios do servidor.
Exercise 6
Answer
Foi impresso 'luzAzuL'.
O código palavra[::-1] é igual ao código palavra[-1:-8:-1].
Desta forma, o fatiamento da string, começando no índice -1, terminando no índice -7, percorrendo a string de -1 em -1.

Fatiamento em listas#
Dissemos no começo do handout que existem muitas semelhanças entre listas e strings em Python. Uma delas é que também é possível realizar fatiamentos de listas, da mesma maneira como fizemos com strings.
Exercise 7
Answer
O código numeros[::2] retorna a lista [0, 2, 4, 6, 8, 10].
No código numeros[::2], os dois primeiros valores foram omitidos, mas podemos reescrever o código da seguinte forma: numeros[0:11:2].
Exercise 8
EXERCÍCIOS#
Exercise 9
Exercise 10
Exercise 11
Exercise 12
EXERCÍCIOS ADICIONAIS#
Exercise 13