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!