
Passo 1 de 8
Do comprimento à posição de um caractere
Conte os caracteres de um texto e use posições a partir de zero para acessar um deles.
Trilha de aprendizado · Nível 3 · Tutorial 1
Localizar caracteres e extrair trechos de textos usando posições, limites e passos, estabelecendo regras que também serão usadas em outras sequências.
Do comprimento à posição de um caractere
Conte os caracteres de um texto e use posições a partir de zero para acessar um deles. 1 min
Acessar pelo final e reconhecer índices inválidos
Use índices negativos para acessar caracteres pelo final e reconheça quando uma posição não existe. 2 min
Recortar com início incluído e fim excluído
Selecione um trecho contínuo de uma string usando dois limites explícitos. 2 min
Omitir limites e recortar a partir do final
Selecione o começo, o final ou um trecho do texto usando limites omitidos e negativos. 2 min
Quando o recorte ultrapassa os limites
Diferencie índice inválido, fatia ajustada ao texto disponível e fatia vazia. 1 min
Escolher o passo do recorte
Selecione caracteres em intervalos regulares usando passos positivos e reconheça por que o passo zero é inválido. 2 min
Percorrer para trás e inverter o texto
Use passos negativos para recortar da direita para a esquerda e inverter um texto. 2 min
Aplicar índices e fatias em um texto estruturado
Extraia informações de um identificador e confira as regras de posições, limites e passos. 2 min

Passo 1 de 8
Conte os caracteres de um texto e use posições a partir de zero para acessar um deles.
Uma string é uma sequência ordenada de caracteres. len(texto) informa quantos caracteres ela contém, incluindo espaços e sinais.
Cada caractere tem uma posição, chamada índice. A contagem dos índices começa em zero. Para acessar um caractere, usamos texto[indice].
Compare a quantidade de caracteres com a posição usada no acesso.
texto = "Oi, Ana!"
print(len(texto)) # 8
print(texto[0]) # O
print(texto[4]) # A
São 8 caracteres, mas os índices vão de 0 a 7. O espaço também ocupa uma posição.
Se saudacao = "Oi Ana!", qual número completa o resultado?
len(saudacao) retorna ___.
Para um texto não vazio, o último índice não negativo é len(texto) - 1.
Em "Oi, Ana!", o comprimento é 8. Como a contagem começa em zero, o último índice é 7.
O cálculo também pode ser usado para acessar o último caractere.
texto = "Oi, Ana!"
ultimo_indice = len(texto) - 1
print(ultimo_indice) # 7
print(texto[ultimo_indice]) # !Em texto = "Oi, Ana!", complete o índice para acessar a letra A:
texto[___]
Ainda com texto = "Oi, Ana!", qual caractere texto[len(texto) - 1] retorna? Digite sem aspas.

Passo 2 de 8
Use índices negativos para acessar caracteres pelo final e reconheça quando uma posição não existe.
O índice -1 acessa o último caractere; -2, o penúltimo; e assim por diante, em direção ao início. Cada caractere pode ser acessado por um índice não negativo ou por um negativo.

Os dois índices alinhados com cada letra acessam o mesmo caractere.
texto = "PORTA"
print(texto[-1]) # A
print(texto[-2]) # TPara texto = "PORTA", associe os acessos que retornam o mesmo caractere.
Toque em um item e depois no par correspondente.
Para um texto de comprimento n maior que zero, os índices válidos vão de 0 a n - 1 ou de -n a -1.
Em "PORTA", são válidos 0 a 4 e -5 a -1. Um acesso fora dessas faixas provoca IndexError: não existe caractere naquela posição.
Este código provoca o erro mostrado no comentário. O índice -6 também ficaria fora das posições existentes.
texto = "PORTA"
print(texto[5]) # IndexError: string index out of rangeAtenção
Se vazio = "", então len(vazio) é 0. Tanto vazio[0] quanto vazio[-1] provocam IndexError: não há primeiro nem último caractere.
Considere texto = "PORTA" e vazio = "". Qual alternativa contém dois acessos que, avaliados separadamente, provocam IndexError?

Passo 3 de 8
Selecione um trecho contínuo de uma string usando dois limites explícitos.
Um índice seleciona um caractere. Uma fatia seleciona um trecho com a sintaxe texto[inicio:fim].
O caractere na posição inicio entra no resultado; o da posição fim fica de fora. Nestes recortes, avançamos para a direita, uma posição por vez.
Em texto = "CADERNO", a fatia texto[1:4] seleciona as posições 1, 2 e 3: "ADE".

O limite 4 indica onde parar, não o último caractere que entra.
texto = "CADERNO"
print(texto[1]) # A
print(texto[1:4]) # ADEPara texto = "CADERNO", associe cada fatia ao trecho correspondente.
Toque em um item e depois no par correspondente.
Considere texto = "CADERNO". Complete com um limite final não negativo para obter "DER":
texto[2:___]

Passo 4 de 8
Selecione o começo, o final ou um trecho do texto usando limites omitidos e negativos.
Nos recortes que avançam para a direita:
texto[:fim] começa no primeiro caractere: seleciona um prefixo, ou trecho inicial.texto[inicio:] segue até o último caractere: seleciona um sufixo, ou trecho final.texto[:] seleciona o texto inteiro.O limite final, quando informado, continua excluído.

Em CADERNO, [:3] seleciona CAD; [3:] seleciona ERNO.
texto = "CADERNO"
print(texto[:3]) # CAD
print(texto[3:]) # ERNO
print(texto[:]) # CADERNOPara texto = "PORTA", complete com um número não negativo para obter "POR":texto[:___]
Ainda com texto = "PORTA", complete com um número não negativo para obter "TA":texto[___:]
Um limite negativo localiza uma posição contando a partir do final. Ele não muda a direção do recorte: aqui, continuamos avançando para a direita.
Em "CADERNO", -4 aponta para E e -1 aponta para O. Assim, texto[-4:-1] inclui E, R e N, mas exclui O. Também é possível combinar um limite negativo com outro omitido.

[-4:-1] começa no E e para antes do O: resultado ERN, não NRE.
texto = "CADERNO"
print(texto[-4:-1]) # ERN
print(texto[-3:]) # RNO
print(texto[:-1]) # CADERNPara texto = "PORTA", complete com um número negativo para obter "OR":texto[-4:___]
Para texto = "PORTA", texto[-3:] retorna "ATR".

Passo 5 de 8
Diferencie índice inválido, fatia ajustada ao texto disponível e fatia vazia.
Considere texto = "LIVRO". Um índice individual precisa apontar para um caractere existente. Já uma fatia ajusta seus limites ao texto disponível: ultrapassar as extremidades não provoca IndexError.
texto[2:20] retorna "VRO". Se o recorte começar além do texto, como em texto[20:30], o resultado será "": texto vazio.
![Comparação para LIVRO, com índices de 0 a 4: texto[20] não encontra uma posição e provoca IndexError; texto[2:20] seleciona VRO; texto[20:30] não seleciona caracteres e retorna texto vazio.](https://cursa-json-routes.s3.amazonaws.com/learning-paths/pt/python/b730454e0225/level-03/tutorial-01/step-05/screen-01/item-02.webp)
O acesso individual exige uma posição existente; a fatia retorna apenas os caracteres disponíveis no intervalo.
Para texto = "CASA", associe cada expressão ao resultado.
Toque em um item e depois no par correspondente.
Nos recortes que avançam para a direita, os limites são ajustados ao intervalo entre 0 e len(texto). Um início muito negativo fica no começo do texto.
Após o ajuste, se o início for maior ou igual ao fim, o resultado será "". Em uma string vazia, essas fatias também retornam "".
Os comentários mostram os resultados. As comparações tornam o texto vazio visível como True.
texto = "LIVRO"
print(texto[-20:2]) # LI
print(texto[3:3] == "") # True: início igual ao fim
print(texto[4:2] == "") # True: início maior que o fim
vazio = ""
print(vazio[:20] == "") # True: nenhum caractere disponívelSe texto = "", a expressão texto[5:100] provoca IndexError.

Passo 6 de 8
Selecione caracteres em intervalos regulares usando passos positivos e reconheça por que o passo zero é inválido.
A forma completa é texto[inicio:fim:passo]. O passo indica o deslocamento entre as posições selecionadas. Se for omitido, vale 1.
Com passo 2, avançamos duas posições por vez, deixando um caractere entre os selecionados. O início continua incluído e o fim, excluído.
![CADERNO com índices de 0 a 6. A fatia texto[0:7:2] seleciona C, D, R e O, nas posições 0, 2, 4 e 6. As posições 1, 3 e 5 são puladas.](https://cursa-json-routes.s3.amazonaws.com/learning-paths/pt/python/b730454e0225/level-03/tutorial-01/step-06/screen-01/item-02.webp)
Passo 2: posições 0 → 2 → 4 → 6. Resultado: C DRO sem espaços, ou seja, CDRO.
O passo também funciona quando deixamos os limites em branco.
texto = "CADERNO"
print(texto[0:7:2]) # CDRO
print(texto[::2]) # CDRO
print(texto[1::2]) # AEN
print(texto[1:4:1]) # ADE: igual a texto[1:4]Para texto = "CADERNO", ordene as posições visitadas por texto[0:7:3].
Para texto = "CADERNO", qual é o resultado de texto[1:5:2]? Digite apenas os caracteres, em maiúsculas e sem aspas.
Atenção
texto[::0] não retorna texto vazio nem repete um caractere: provoca ValueError. Python não aceita zero como passo de uma fatia. Omitir o passo é diferente de escrever zero: quando omitido, ele vale 1.
Se executar este exemplo no seu computador, ele será interrompido pelo erro indicado.
texto = "CADERNO"
print(texto[::0]) # ValueError: slice step cannot be zeroPara texto = "CADERNO", texto[::0] retorna o mesmo resultado que texto[:].

Passo 7 de 8
Use passos negativos para recortar da direita para a esquerda e inverter um texto.
Com passo negativo, a fatia percorre posições em direção ao início do texto. O início continua incluído e o fim continua excluído.
Para texto = "Python", texto[5:1:-1] visita as posições 5, 4, 3 e 2: o resultado é "noht". A posição 1 fica de fora.
Um passo -2 também vai para a esquerda, mas diminui o índice de dois em dois.

texto[5:1:-1]: siga as setas para a esquerda e pare antes do índice 1.
Considere texto = "Python". Qual é o resultado de texto[5:1:-2]? Digite apenas os caracteres, sem aspas.
Com passo negativo, omitir o início faz o percurso partir do último caractere. Omitir o fim permite seguir até incluir o primeiro, se o passo alcançar essa posição.
Assim, texto[::-1] inverte todo o texto.
Os comentários indicam os resultados das expressões.
texto = "Python"
print(texto[::-1]) # nohtyP
print(texto[::-2]) # nhy
print(texto[:-1:-1]) # texto vazio: ""
print(texto[1:5:-1]) # texto vazio: ""Dica
Em texto[:-1:-1], o início omitido e o fim -1 indicam a mesma posição: a última. Como o fim é excluído, nada é selecionado.
Já texto[1:5:-1] fica vazio porque, partindo de 1 e diminuindo os índices, não é possível avançar em direção a 5. Para recortar para trás com limites explícitos válidos, o início precisa estar à direita do fim.
Você tem palavra = "janela". Escreva uma expressão que produza "alenaj" usando uma fatia. Explique por que deixar o início e o fim em branco permite inverter a palavra inteira.
Escreva pelo menos 15 caracteres (0/15).

Passo 8 de 8
Extraia informações de um identificador e confira as regras de posições, limites e passos.
O identificador BR-2048-X tem formato fixo: prefixo de duas letras, hífen, trecho de quatro dígitos, hífen e letra final. Sua missão é consultar as extremidades, separar as partes e inverter apenas o trecho numérico.

Use as posições para separar os campos sem incluir os hífens.
Você pode resolver nas próximas telas ou executar este código no Python do seu computador e acrescentar suas consultas com print.
identificador = "BR-2048-X"
print(identificador)Para identificador = "BR-2048-X", registre uma expressão e seu resultado para cada pedido:
BR.2048.8402.No último pedido, você pode guardar o trecho em uma variável antes de invertê-lo.
Escreva pelo menos 40 caracteres (0/40).
Ainda com identificador = "BR-2048-X", indique o resultado ou o nome do erro:
A. identificador[99]
B. identificador[7:99]
C. identificador[6:3]
D. identificador[::0]
Por que A e B se comportam de formas diferentes, mesmo usando 99?
Se testar no Python local, execute cada caso separadamente: um erro interrompe o script.
Escreva pelo menos 30 caracteres (0/30).
Resumo
Escolha um índice para uma posição ou uma fatia para um trecho.
Parabéns! Você concluiu: Acessar e recortar textos com índices e fatias
Milhares de cursos online em vídeo, ebooks e áudiobooks.
Para testar seus conhecimentos no decorrer dos cursos online
Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail
Baixe nosso aplicativo pelo QR Code ou pelos links abaixo:.
+ de 10 milhões
de alunos
Certificado grátis e
válido em todo o Brasil
60 mil exercícios
gratuitos
4,8/5 classificação
nas lojas de apps
Cursos gratuitos em
vídeo, ebooks e audiobooks