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.
Solicita ao usuário a quantidade de dias para as atividades 'A', 'B' e 'C'
e calcula a soma total dos dias informados. Garante que as entradas sejam
números inteiros.
Raises:
SystemExit: Se o valor inserido não for um número válido ou
se for um número negativo (o programa é encerrado com código 1).
"""
dias_atividade: dict[str, int] = {
'A': 0,
'B': 0,
'C': 0
}
numero_dias: int = 0
soma_dias: int = 0
for atividade in dias_atividade:
try:
numero_dias = pega_int(f'Informe os dias para a atividade {atividade}: ')
except ValueError:
print('Erro: O valor inserido não é um número válido!')
exit(1)
dias_atividade[atividade] = numero_dias
for dias in dias_atividade.values():
if dias < 0:
print('Erro: Os dias não podem ser negativos.')
exit(1)
else:
soma_dias = soma_dias + dias
print(f'A soma dos dias é: {soma_dias}')
if __name__ == '__main__':
main()