Olá, Lorena!
Obrigado pelo feedback!
Adicionei uma função para classificar o produto mais vendido ou os mais vendidos (empatado) e fiz uma lógica para funcionar com qualquer quantidade de produtos adicionados ao dicionário de produtos.
def indica_vencedor(competidores: dict[str, int]) -> dict[str, int]:
"""
Indica o(s) vencedor(es) ou competidores empatados com a pontuação máxima
a partir de um dicionário de competidores e suas pontuações.
Args:
competidores: Um dicionário onde a chave é o nome do competidor (str)
e o valor é a sua pontuação (int).
Returns:
Um dicionário contendo apenas o(s) competidor(es) com a pontuação máxima.
Retorna um dicionário vazio se 'competidores' for vazio.
"""
if not competidores:
return {}
vencedores: dict[str, int] = {}
pontuacao_maxima: int = 0
pontuacao_maxima = max(competidores.values())
for nome, pontuacao in competidores.items():
if pontuacao == pontuacao_maxima:
vencedores[nome] = pontuacao
return vencedores
def main() -> None:
"""
Função principal do programa para monitorar vendas de frutas.
Solicita ao usuário a quantidade de maçãs e bananas vendidas,
utilizando a função `pega_int` para garantir que as entradas sejam válidas.
Compara as quantidades e imprime qual produto teve o maior volume
de vendas ou se houve um empate.
"""
quantidade_vencedores: int = 0
vencedores: dict[str, int] = {}
produtos: dict[str, int] = {
'maça': 0,
'banana': 0
}
for produto in produtos:
while True:
try:
produtos[produto] = pega_int(f'\nDigite a quantidade de {produto}(s) vendida(s): ')
break
except ValueError as e:
print(e)
vencedores = indica_vencedor(produtos)
quantidade_vencedores = len(vencedores)
if quantidade_vencedores == 1:
print(f'O produto vencedor de vendas é: \n{'\n'.join(list(vencedores.keys()))}')
elif quantidade_vencedores > 1:
print(f'Os produtos empatados em vendas são: \n{'\n'.join(list(vencedores.keys()))}')
else:
print('Erro ao identificar o produto vencedor de vendas.')