Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[solução] Monitorando vendas no comércio

def pega_int(pergunta: str, opcoes: list[int] = []) -> int:
    """
    Solicita uma entrada do usuário, garantindo que seja um número inteiro
    e, opcionalmente, que esteja dentro de uma lista de opções válidas.

    Args:
        pergunta: A mensagem (prompt) a ser exibida ao usuário.
        opcoes: Uma lista de inteiros válidos. Se a lista estiver vazia
            (padrão), qualquer inteiro é aceito.

    Returns:
        O número inteiro digitado pelo usuário.

    Raises:
        ValueError: Se a entrada não puder ser convertida para int.
        ValueError: Se o inteiro digitado não estiver na lista de opções válidas.
    """

    resposta: int = 0
    
    try:
        resposta = int(input(pergunta))
    except ValueError:
        raise ValueError('Entrada inválida!')
    
    if opcoes == []:
        return resposta
    
    if resposta in opcoes:
        return resposta
    raise ValueError('Opção inválida!')

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.
    """
    
    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)

    if produtos['maça'] > produtos['banana']:
        print('As maçãs tiveram mais vendas.')
    elif produtos['maça'] < produtos['banana']:
        print('As bananas tiveram mais vendas.')
    else:
        print('As vendas de maçãs e bananas foram iguais.')


if __name__ == '__main__':
    main()
2 respostas
solução!

Oi, Mozert! Como vai?

Agradeço por compartilhar.

Gostei da forma como você estruturou a função pega_int, deixando o código mais organizado e garantindo entradas válidas. Sua solução para comparar as vendas de maçãs e bananas está clara e bem prática.

Continue praticando dessa forma, pois esse cuidado em validar entradas fortalece bastante sua lógica de programação.

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

Olá, Lorena!
Obrigado pelo feedback!