Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Desafio: Monitorando Venda Comercio

def monitorando_venda_comercio():
    while True:
        try:
            macas_vendidas = int(input("Digite o número de maçãs vendidas: "))
            bananas_vendidas = int(input("Digite quantas bananas foram vendidas: "))
            if macas_vendidas > bananas_vendidas:
                print("As maçãs tiveram mais vendas!")
            elif macas_vendidas < bananas_vendidas:
                print("As bananas tiveram mais vendas!")
            else:
                print("Ambas tiveram a mesma quantidade de vendas")
            break
        except ValueError:
            print("Digite apenas números!")
            
def main():
    monitorando_venda_comercio()

if __name__=='__main__':
    main()

Como faria se caso aumentasse as frutas? exemplo: fossem mais de 10 frutas, acredito que seriam muitos if, elifs desnecessários.

1 resposta

Oi, Felipe!

Essa é uma excelente pergunta e toca em um ponto fundamental da programação: a escalabilidade. Você está certo ao pensar que, se tivéssemos 10 ou mais frutas, o código ficaria gigante e difícil de manter com tantos if e elif.

Pra resolver isso de forma direta e objetiva, o ideal é parar de tratar cada fruta como uma variável isolada e passar a usar uma estrutura de dados, como um Dicionário ou uma Lista.

Como o código ficaria mais inteligente?

Em vez de comparar uma por uma, você pode armazenar todas as frutas em um dicionário onde a "chave" é o nome da fruta e o "valor" é a quantidade vendida. Assim, você consegue usar funções prontas do Python para encontrar o maior valor sem precisar de nenhum if manual para a comparação.

vendas = {
    "Maçãs": 15,
    "Bananas": 20,
    "Uvas": 10,
    "Laranjas": 25,
    # Você pode adicionar quantas frutas quiser aqui!
}

# Encontra a fruta com o maior valor de venda
melhor_fruta = max(vendas, key=vendas.get)

print(f"A fruta que teve mais vendas foi: {melhor_fruta} com {vendas[melhor_fruta]} vendas.")

Por que isso é melhor?

Profundidade: O código fica muito mais limpo e profissional.
Eficiência: Você não precisa mudar a lógica do cálculo se a lanchonete começar a vender 50 tipos de frutas diferentes.
Caminhos de navegação: Esse tipo de estrutura facilita a criação de relatórios e gráficos futuramente.

Para se aprofundar em como gerenciar coleções de dados sem se perder em condicionais, recomendo este Artigo da Alura sobre Dicionário Python: O que é, como funciona e exemplos. Ele explica exatamente como manipular essas estruturas que facilitam muito a vida do desenvolvedor.

Já tinha chegado a ver algo sobre dicionários ou listas nos seus estudos, ou essa ideia de "mapear" os dados ainda é novidade para você?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!