Olá, Luísa. Como vai?
Excelente ver você praticando novamente e, mais uma vez, buscando duas abordagens diferentes para o mesmo problema! A sua primeira solução utilizando if, elif e else resolve muito bem o desafio e a lógica de comparação direta está corretíssima.
A sua segunda abordagem utilizando dicionários (dict) e funções nativas como max() ficou fantástica e demonstra uma evolução muito legal no uso de recursos avançados do Python. A estratégia de usar len(set(...)) == 1 para identificar o empate foi uma sacada genial, pois converte os valores para um conjunto (removendo duplicados) e verifica se sobrou apenas um elemento único.
Para deixar seus códigos ainda mais robustos e polidos, trago alguns pequenos pontos de melhoria técnica e de boas práticas:
1. Ajuste no cenário de empate (Segunda Abordagem)
No seu segundo código, caso ocorra um empate, o programa exibe a mensagem "Houve empate!", mas logo em seguida ele tenta executar a linha do else. No entanto, como as variáveis campeao e quantidade não foram criadas dentro do bloco do if (apenas no else), o programa poderia quebrar se você tentasse usar essas variáveis mais adiante.
Podemos ajustar isso definindo os valores de empate no dicionário para manter a consistência:
# USANDO FUNÇÃO E DICT (Ajustado)
vendas = {"Maçãs": int(input("Maçãs: ")), "Bananas": int(input("Bananas: "))}
if len(set(vendas.values())) == 1:
campeao = "Empate"
quantidade = list(vendas.values())[0] # Pega o valor de qualquer uma
print("Houve a mesma quantidade de venda para ambos os produtos.")
else:
campeao = max(vendas, key=vendas.get)
quantidade = vendas[campeao]
print(f"As {campeao.lower()} tiveram mais vendas.")
print(f"Produto mais vendido: {campeao} | Quantidade: {quantidade}")
2. Revisão das Strings (Ortografia)
Na primeira abordagem, há apenas alguns pequenos detalhes de digitação nas mensagens que aparecem na tela (como "maças" em vez de "maçãs", "vendida" no singular, e "tivem" em vez de "tiveram"). Corrigir esses pequenos textos deixa o seu programa com uma cara muito mais profissional:
- Onde está:
print("As maças tivem mais vendas.") - O correto seria:
print("As maçãs tiveram mais vendas.")
Utilizar o dicionário e a função max(), como você fez, é uma excelente prática de mercado porque torna o código escalável. Se a loja passar a vender 10 frutas diferentes, a lógica do max(vendas, key=vendas.get) continuará funcionando perfeitamente sem que você precise criar dezenas de blocos elif.
Parabéns pelo excelente progresso e por pensar de forma tão analítica!
Espero que possa ter lhe ajudado!