Faça uma função que, dada uma frase, retorne a frase onde todos os caracteres de pontuação (incluindo travessão, vírgula, dois pontos, ponto e vírgula, além da pontuação de encerramento de frase) tenham sido substituídos por espaço.
Passo 1
Então, o que a gente tem aqui é um exercício de programação. A gente precisa criar uma função que, recebendo uma frase, vai substituir todos os caracteres de pontuação por espaços. Isso inclui coisas como vírgulas, pontos, dois pontos, ponto e vírgula, travessões e outros sinais que normalmente terminam uma frase. Para resolver isso, vamos precisar trabalhar com manipulação de strings, ou seja, trabalhar com o texto dentro da programação.
Passo 2
Primeiro, vamos pensar em quais caracteres de pontuação queremos substituir por espaços. A lista inclui:
- Vírgula (,)
- Ponto (.)
- Dois pontos (😃
- Ponto e vírgula (😉
- Travessão (—)
- Exclamação (!)
- Interrogação (?)
- Aspas (" ")
- Parênteses ( () )
- Outros que a gente imaginar
Passo 3
Agora, vamos pensar em como substituir esses caracteres por espaços. Uma maneira eficiente de fazer isso em Python é usando a biblioteca
re
, que lida com expressões regulares. As expressões regulares nos permitem identificar padrões específicos no texto, como todos os sinais de pontuação, e substituí-los facilmente.Passo 4
Vamos criar a função passo a passo:
- Importar a biblioteca
re
: Isso nos dá acesso às funções de expressão regular. - Definir a função: Vamos chamar a função de
substituir_pontuacao
. - Criar um padrão de pontuação: Usaremos uma expressão regular que identifica todos os caracteres de pontuação que queremos substituir.
- Usar
re.sub
para substituir: Essa função substitui todas as ocorrências do padrão por espaço. - Retornar a frase modificada.
Passo 5
Aqui está o código completo da função:
import re
def substituir_pontuacao(frase):
# Define o padrão com todos os caracteres de pontuação que queremos substituir
padrao = r'[.,:;!?—"\'()]'
# Substitui todos os caracteres de pontuação por espaço
frase_sem_pontuacao = re.sub(padrao, ' ', frase)
return frase_sem_pontuacao
Resposta
A função
substituir_pontuacao
recebe uma frase e retorna a mesma frase com todos os caracteres de pontuação substituídos por espaços. Por exemplo:frase = "Olá, mundo! Como vai você?"
print(substituir_pontuacao(frase))
Saída:
Olá mundo Como vai você
Exercícios relacionados
Dado um texto armazenado em uma string, faça a função que conte o número de frases que aparecem neste texto. Cada frase no texto é terminada com um ponto final, um ponto de exclamação, um ponto de interrogação ou três pontos em sequência (reticências). Pontos de exclamação ou de interrogação não aparecerão repetidos em sequência no texto e esses símbolos só aparecem no texto terminando uma frase. No exemplo a seguir, são contadas 4 frases: Preciso tirar um cochilo. Meus Deus! Que horas são? Vou perder a minha aula…
Faça uma função que dada uma frase retorne uma outra frase que contenha as mesmas palavras da frase de entrada na ordem inversa, sem letras maiúsculas, e sem a pontuação.
DICA: remova a pontuação da frase, usando a função que você fez pro exercício anterior. Para reaproveitar uma função feita no Machine Teaching, copie o código completo da função e cole na caixa de resposta do exercício onde quer utilizá-la. Faça então a função pedida no exercício, embaixo da que você colou, e dentro dela você irá chamar a que está reutilizando.
Exemplo:
frase lida: Nossa, como eu gosto de chocolate.
frase alterada: chocolate de gosto eu como nossa
DICA: remova a pontuação da frase, usando a função que você fez pro exercício anterior. Para reaproveitar uma função feita no Machine Teaching, copie o código completo da função e cole na caixa de resposta do exercício onde quer utilizá-la. Faça então a função pedida no exercício, embaixo da que você colou, e dentro dela você irá chamar a que está reutilizando.
Exemplo:
frase lida: Nossa, como eu gosto de chocolate.
frase alterada: chocolate de gosto eu como nossa
Faça uma função insere(lista_numero, n) que dada uma lista ordenada (crescente) de números inteiros e um número inteiro
, inclua
na posição correta, ou seja, de tal maneira que a lista continue ordenada.
DICA: Provavelmente, a primeira idéia que vem à cabeça é inserir diretamente na posição correta, verificando os elementos da lista até achar a posição onde o deve ser inserido. Mas nós ainda não sabemos fazer isso (veremos nas próximas aulas). Pense em outra estratégia de resolução deste problema, usando a função list.sort(lista).
DICA: Provavelmente, a primeira idéia que vem à cabeça é inserir diretamente na posição correta, verificando os elementos da lista até achar a posição onde o
Faça uma função maiores que, dada uma lista de números inteiros e um número inteiro
, retorna outra lista, que contenha todos os números da lista original maiores que
ordenados em ordem crescente.