Escreva um programa que leia frases, repetidamente, e que gere um dicionário para cada frase lida. As chaves do dicionário serão os caracteres digitados, e os valores devem consistir no número de vezes que o caractere aparece na frase. O programa deve exibir, para cada frase, seu dicionário correspondente e ser encerrado quando o usuário digitar 1.
Exemplo: Frase -> Dados
Dicionário ->
Exemplo: Frase -> Dados
Dicionário ->
Passo 1
Beleza, então o exercício pede que a gente faça um programa em Python que:
- Leia uma frase do usuário várias vezes;
- Para cada frase, monte um dicionário cuja chave é cada caractere da frase e o valor é quantas vezes esse caractere aparece ali;
- Mostre esse dicionário na tela;
- Pare de pedir frases quando o usuário digitar exatamente
1
.
O conteúdo aqui é: laços de repetição (while
), estruturas de dados do tipo dicionário (dict
) e como percorrer strings. A gente vai precisar entender bem como criar e atualizar um dicionário em Python e como usar oinput()
pra ler entrada.
Passo 2
Primeiro, vamos montar um laço infinito com
while True:
e ler a frase com input()
. Se a frase for "1"
, a gente dá break
pra sair do programa. Assim a gente já cuida do ponto de parada.Passo 3
Depois de ler a frase (e garantir que não é
"1"
), vamos criar um dicionário vazio:contagem = {}
Em Python, um dicionário é uma coleção de pares chave:valor. Aqui cada chave vai ser um caractere da frase e o valor é quantas vezes ele apareceu.
Passo 4
Aí é só percorrer cada caractere da frase com um
for
:for char in frase:
if char in contagem:
contagem[char] += 1
else:
contagem[char] = 1
Explicando:
for char in frase:
passa por cada letra (ou espaço, ou símbolo) da string.if char in contagem:
verifica se já temos esse caractere no dicionário.- Se já tiver, a gente só adiciona 1 ao contador (
+= 1
). - Se não tiver, inicializa com 1 (
= 1
).
Passo 5
Pronto, depois desse loop
contagem
já tem a frequência de cada caractere. Agora é só exibir:print(contagem)
Isso vai mostrar algo como
{'D': 2, 'a': 1, 'd': 2, 'o': 1, 's': 1}
para a frase "Dados"
.Passo 6
E volta pro começo do
while True:
pra ler a próxima frase, até o usuário digitar 1
.Resposta
Segue o código completo em Python, do jeitinho que a gente explicou:
while True:
frase = input("Digite uma frase (ou 1 para sair): ")
if frase == "1":
print("Programa encerrado. Até mais!")
break
contagem = {} # dicionário vazio
for char in frase:
if char in contagem:
contagem[char] += 1
else:
contagem[char] = 1
print(contagem)
Exemplo de uso:
Se eu digitar
Se eu digitar
Dados
, a saída será{'D': 2, 'a': 1, 'd': 2, 'o': 1, 's': 1}
Aí o programa pede outra frase até você digitar
1
!