Pular para o conteúdo principal

Aula 08: Manipulação de Strings

Objetivos de Aprendizagem

Ao final desta aula, você deve ser capaz de:

  1. Acessar caracteres individuais de uma string por índice.
  2. Usar fatiamento (slicing) para extrair partes de uma string.
  3. Aplicar métodos de string para transformar e analisar texto.
  4. Formatar strings com f-strings de forma eficaz.
  5. Resolver problemas simples de processamento de texto.

Conteúdo

1) Indexação de strings

Cada caractere de uma string possui um índice numérico, começando em 0.

palavra = "Python"
# 012345

print(palavra[0]) # P
print(palavra[3]) # h
print(palavra[-1]) # n (último caractere)
print(palavra[-2]) # o (penúltimo)

Índices negativos contam a partir do final da string.

2) Fatiamento (slicing)

Fatiamento permite extrair substrings usando a notação [inicio:fim:passo].

texto = "algoritmo"

print(texto[0:4]) # algo (índices 0, 1, 2, 3)
print(texto[4:]) # ritmo (do índice 4 até o fim)
print(texto[:4]) # algo (do início até o índice 3)
print(texto[::2]) # agrtm (um a cada dois)
print(texto[::-1]) # omtirогла (string invertida)

Exemplo: verificar palíndromo

def palindromo(palavra):
return palavra == palavra[::-1]

print(palindromo("arara")) # True
print(palindromo("python")) # False

3) Comprimento e iteração

nome = "Carolina"

print(len(nome)) # 8

for letra in nome:
print(letra)

4) Métodos de string

Python oferece diversos métodos embutidos para manipular strings.

Transformação de case

texto = "Olá, Mundo!"

print(texto.upper()) # OLÁ, MUNDO!
print(texto.lower()) # olá, mundo!
print(texto.capitalize()) # Olá, mundo!
print(texto.title()) # Olá, Mundo!

Remoção de espaços

entrada = "   dado com espaços   "

print(entrada.strip()) # "dado com espaços"
print(entrada.lstrip()) # "dado com espaços "
print(entrada.rstrip()) # " dado com espaços"

Substituição e busca

frase = "Eu gosto de café e café me faz bem"

print(frase.replace("café", "chá"))
# Eu gosto de chá e chá me faz bem

print(frase.count("café")) # 2
print(frase.find("café")) # 14 (índice da 1ª ocorrência)
print("café" in frase) # True

Divisão e junção

csv = "Alice,Bob,Carol,Diana"

nomes = csv.split(",")
print(nomes) # ['Alice', 'Bob', 'Carol', 'Diana']

reunido = " - ".join(nomes)
print(reunido) # Alice - Bob - Carol - Diana

Verificações booleanas

print("abc".isalpha())    # True  (apenas letras)
print("123".isdigit()) # True (apenas dígitos)
print("abc123".isalnum()) # True (letras e/ou dígitos)
print(" ".isspace()) # True (apenas espaços)
print("Hello".startswith("He")) # True
print("Hello".endswith("lo")) # True

5) Formatação com f-strings

f-strings permitem inserir expressões Python diretamente em strings.

nome = "Ana"
nota = 8.756

print(f"Aluna: {nome}")
print(f"Nota: {nota:.2f}") # 2 casas decimais
print(f"Nota: {nota:.0f}") # sem casas decimais
print(f"Largura fixa: {nome:>10}") # alinhado à direita em 10 chars
print(f"Em maiúsculas: {nome.upper()}")

Saída esperada:

Aluna: Ana
Nota: 8.76
Nota: 9
Largura fixa: Ana
Em maiúsculas: ANA

6) Exemplos contextualizados

Exemplo A: formatar nome completo

def formatar_nome(nome_completo):
partes = nome_completo.strip().split()
return " ".join(parte.capitalize() for parte in partes)

print(formatar_nome(" joÃO dA siLVA "))

Saída esperada: João Da Silva

Exemplo B: validar e-mail simples

def email_valido(email):
return "@" in email and email.endswith(".com") or email.endswith(".br")

print(email_valido("aluno@escola.com.br")) # True
print(email_valido("nao-e-email")) # False

Exemplo C: contar vogais

def contar_vogais(texto):
vogais = "aeiouáéíóúãõâêîôûàèìòù"
return sum(1 for c in texto.lower() if c in vogais)

print(contar_vogais("Programação")) # 5

Exercícios (checkpoints)

  1. Dado a string "Algoritmos e Programação", imprima o primeiro e o último caractere.
    • Critério de verificação: deve imprimir A e o.
  2. Escreva uma função inverter(texto) que retorna o texto invertido usando slicing.
    • Critério de verificação: inverter("Python") deve retornar "nohtyP".
  3. Use .split() e .join() para substituir espaços por hífens em uma frase.
    • Critério de verificação: "olá mundo" deve se tornar "olá-mundo".
  4. Crie uma função normalizar(texto) que remove espaços das bordas e coloca tudo em minúsculas.
    • Critério de verificação: normalizar(" OLÁ ") deve retornar "olá".
  5. Verifique se uma palavra digitada pelo usuário é um palíndromo.
    • Critério de verificação: "arara" deve exibir mensagem de palíndromo; "casa" não.
  6. Formate um relatório simples com f-string: nome, média e situação (Aprovado/Reprovado, com média >= 6).
    • Critério de verificação: para nome "Carlos" e média 7.5, deve exibir Carlos | 7.50 | Aprovado.

Referências

Principais

Aprofundamento