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()