Aula 11: Manipulação de Strings

Trabalhando com texto em Python.

O Que Você Vai Aprender

Nesta aula de 2 horas, você mergulhará no fascinante mundo da manipulação de strings em Python. Entenderá a natureza do texto, como acessar partes específicas e como usar os métodos poderosos que Python oferece para formatar, buscar e modificar strings.

✍️ Revisar Strings e Imutabilidade

Compreender a definição de string e o conceito crucial de imutabilidade.

✂️ Acessar e Fatiar (Slicing) Strings

Aprender a pegar caracteres individuais ou partes (fatias) de uma string.

🛠️ Dominar Métodos Comuns

Conhecer e aplicar as funções mais úteis para manipular texto em Python.

Revisão e Imutabilidade

Strings são sequências de caracteres, ou seja, qualquer texto que você coloca entre aspas (`"Olá"` ou `'Mundo'`). Mas há um conceito muito importante em Python sobre strings: a imutabilidade.

🚫 Strings são Imutáveis!

Uma vez que uma string é criada, ela não pode ser alterada. Quando você "modifica" uma string (como converter para maiúsculas), Python na verdade cria uma nova string com as alterações, deixando a original intacta.

# Exemplo de Imutabilidade
minha_string = "Hello"
# Tentativa de alterar um caractere (resulta em erro!)
# minha_string[0] = 'J' 

nova_string = minha_string.upper() # Cria UMA NOVA string
print(minha_string) # Saída: Hello (original inalterada)
print(nova_string)  # Saída: HELLO (nova string)

Acesso por Índice e Fatiamento (Slicing)

Strings são sequências, o que significa que cada caractere tem uma posição (um índice). Podemos acessar caracteres individuais ou "fatias" (substrings) usando esses índices. O índice começa em 0 para o primeiro caractere.

Acesso por Índice

Para acessar um caractere específico, use colchetes `[]` com o índice.

palavra = "Python"
print(palavra[0]) # Saída: 'P' (primeiro caractere)
print(palavra[5]) # Saída: 'n' (último caractere)

Você também pode usar índices negativos, que contam a partir do final da string:

print(palavra[-1]) # Saída: 'n' (último caractere)
print(palavra[-6]) # Saída: 'P' (primeiro caractere)

Fatiamento (Slicing)

Para extrair uma parte (uma "fatia") da string, use `[inicio:fim:passo]`.

palavra = "Python"
print(palavra[0:2])    # Saída: 'Py' (do índice 0 até ANTES do 2)
print(palavra[2:5])    # Saída: 'tho'

Você pode omitir `inicio` (começa do zero) ou `fim` (vai até o final):

print(palavra[:2])     # Saída: 'Py'
print(palavra[2:])     # Saída: 'thon'
print(palavra[:])      # Saída: 'Python' (cópia completa)

O `passo` é opcional e define de quantos em quantos caracteres pular:

print(palavra[::2])    # Saída: 'Pto' (pula de 2 em 2)
print(palavra[::-1])   # Saída: 'nohtyP' (inverte a string!)

Simulador de Fatiamento de Strings

Digite uma string e os índices para fatiar. Lembre-se: `[início:fim:passo]`!

Métodos Essenciais de Strings

Python oferece uma variedade de métodos (funções que "pertencem" a um objeto) para manipular strings. Eles facilitam tarefas comuns, como mudar maiúsculas/minúsculas, remover espaços ou encontrar partes de um texto. Lembre-se que eles criam novas strings!

`len(string)`

Retorna o comprimento (número de caracteres) da string.

len("Python") # Saída: 6

`.lower()` e `.upper()`

Convertem a string para minúsculas ou maiúsculas, respectivamente.

"Python".lower() # Saída: "python"
"python".upper() # Saída: "PYTHON"

`.strip()`

Remove espaços em branco (ou outros caracteres) do início e do fim da string.

"  Olá Mundo  ".strip() # Saída: "Olá Mundo"

`.replace('antigo', 'novo')`

Substitui todas as ocorrências de uma substring por outra.

"banana".replace("a", "o") # Saída: "bonono"

`.find('sub')`

Retorna o índice da primeira ocorrência da substring. Retorna `-1` se não encontrar.

"abacaxi".find("a") # Saída: 0
"abacaxi".find("z") # Saída: -1

`.count('sub')`

Conta quantas vezes uma substring aparece na string.

"banana".count("a") # Saída: 3

Explorador de Métodos de String

Digite uma string, selecione um método e (se necessário) forneça parâmetros para ver o resultado.

Desafios para Continuar

Agora que você explorou a manipulação de strings, é hora de colocar a mão na massa! Resolva estes problemas no seu ambiente de desenvolvimento Python para solidificar seu aprendizado.

  • Análise de Nome Completo

    Crie um programa que:

    • Peça o nome completo do usuário.
    • Imprima o nome em MAIÚSCULAS.
    • Imprima o nome em minúsculas.
    • Imprima o número total de letras no nome (sem contar espaços).
    • Imprima a primeira letra do nome.

  • Contador de Palavras em Frase

    Crie um programa que:

    • Receba uma frase do usuário.
    • Receba uma palavra a ser procurada na frase.
    • Conte quantas vezes essa palavra aparece na frase (ignorando maiúsculas/minúsculas).
    • Imprima o resultado.