Fala, meus consagrados! Tudo beleza com vocês?
Vamos entender como retornar substrings a parte de uma string na linguagem Python.
Teoria
Podemos acessar um intervalo de uma string com a seguinte sintaxe:
string[início:fim]
Onde informamos o índice inicial (início) e o índice final de uma string (fim, mas ele não é incluído).
Exemplo:
No exemplo acima, temos dois fatiamentos:
- No primeiro fatiamento, lemos da seguinte forma: traga o intervalo (trecho) da string da posição 0 (primeiro índice informado) até a posição 6 (posição anterior ao segundo índice informado); e
- No segundo fatiamento: traga o intervalo (trecho) da string da posição 8 (primeiro índice informado) até a posição 13 (posição anterior ao segundo índice informado).
PULO DO GATO
Essa operação de retornar um intervalo de uma string é chamada de fatiamento de strings (slicing strings). O fatiamento de strings é bastante cobrado em questões de concursos sobre strings em Python.
ATENÇÃO!
O fatiamento de strings não afeta a string original. Quando usamos essa operação, o que é retornado é um trecho da string original. Veja o exemplo abaixo para entender melhor.
Exemplo:
Veremos mais exemplos sobre fatiamento de strings, para que você, meu(minha) prezado(a) aluno(a), possa entender como funciona a operação em várias situações.
Podemos fatiar uma string, omitindo o índice inicial. Dessa forma é como se o intervalo começasse do primeiro caractere:
Veja que x[:7] é equivalente a x[0:7].
Da mesma forma que podemos omitir o índice inicial, podemos omitir o índice final:
Veja que x[8:] é equivalente a x[8:14]. Ou seja, ao omitir o índice final é como se fatiássemos a string a partir do índice inicial informado até o final da string.
Além, da omissão do índice inicial e do índice final, podemos omitir os dois ao mesmo tempo. Quando isso acontece, o que é retornado é a string completa, pois não houve parâmetros de fatiamento.
Exemplo:
Podemos também usar valores negativos para representar os índices do fatiamento. Para entendermos como isso acontece, o último caractere fica na posição -1, o penúltimo fica na posição -2, o antepenúltimo, na posição -3 e assim por diante.
Exemplo:
Podemos ter um terceiro parâmetro para o fatiamento: passo (string[início:fim:passo]). Ele determina o incremento entre cada índice para o fatiamento. Ele é opcional. Quando não citado, então assume-se o valor 1.
Exemplos:
Quando se usa valores negativos para o parâmetro passo, o fatiamento vem de forma inversa.
Exemplos:
Por último, temos o seguinte:
- Se o índice de início for maior que o índice final e o passo for positivo:
- Então não é retornado nada;
- Se o índice de início for menor que o índice final e o passo for negativo:
- Então não é retornado nada.
Exemplos:
Questões de Concursos
[COVEST/COPSET 2019 UFPE – Analista de Tecnologia da Informação – Sistemas] Considere uma String s, que armazena o valor “ALO MUNDO”. Utilizando Java e Python, respectivamente, a alternativa com as instruções que exibiriam a substring “MU” seria:
(A) Java: s.substring(4,6)
Python: s.substring(5,7)
(B) Java: s[5,6]
Python: s[5:6]
(C) Java: s.substring(4,6)
Python: s[-5:-3]
(D) Java: s.substring(-4,-3)
Python: s[5:6]
(E) Java: s.substring(4,6)
Python: s.substr(4,6)
Comentários:
Focando apenas na linguagem Python, para fazemos o fatiamento da string “ALO MUNDO” a fim de trazer o trecho “MU”, podemos fazer de duas formas: usando índices positivos ou negativos.
Com isso, de acordo com o código, o gabarito é a letra c, pois foi a única que trouxe o código correto em Python: s[-5: -3].
Comentando todas as letras:
- Letra A está errada: não existe o método substring em Python (s.substring(5,7));
- Letra B está errada: o código em Python da letra (s[5:6]) retorna o caractere “U”;
- Letra C está certa: o código em Python da letra (s[-5:-3]) retorna o caractere “MU”;
- Letra D está errada: o código em Python da letra (s[5:6]) retorna o caractere “U”;
- Letra E está errada: não existe o método substr em Python (s.substr(4,6)).
Gabarito: letra c.
[IF Sul Rio-Grandense 2019 IF Sul Rio-Grandense – Analista de Tecnologia da Informação] Considerando a variável s = ‘ IFSUL’, utilizando a linguagem Python, qual a instrução que exibe ‘SU’?
(A) print (s[-3:-1])
(B) print (s[3:4])
(C) print (s.substr(3,4))
(D) print (s[-3:-4])
Comentários:
Para retornar o trecho “SU” da string “ IFSUL” (sendo que o primeiro caractere é um espaço em branco, podemos fazer das seguintes formas:
Comentando todas as letras:
- Letra A está certa: o código em Python da letra (s[-3:-1]) retorna o caractere “SU”;
- Letra B está errada: o código em Python da letra (s[3:4]) retorna o caractere “S”;
- Letra C está errada: não existe o método substr em Python (s.substr(3,4));
- Letra D está errada: o código em Python da letra (s[-3:-4]) não retorna nada, pois o valor do segundo índice é menor que o primeiro.
Gabarito: letra a.
Então é isso!
[]s e até a próxima!
_________________________
Professor Rogerão Araújo