1
resposta

[RESPOSTA]

class ConversaoInteiroException(Exception):
    pass

def ler_entrada() -> str:
    return input("Digite um número: ").strip()

def converter_para_inteiro(valor: str) -> int:
    if valor == '':
        raise ConversaoInteiroException("String vazia não pode ser convertida para inteiro")

    try:
        return int(valor)
    except ValueError as e:
        raise ConversaoInteiroException(f"O valor '{valor}' não pode ser convertido para inteiro") from e

def soma_recursiva(valor: int) -> int:
    if valor == 1:
        return valor
    return soma_recursiva(valor - 1) + valor

def formatar_resultado(entrada: int, soma: int) -> str:
    return f"A soma de 1 a {entrada} é : {soma}"

def processar_resultado() -> None:

    try:
        entrada_int = converter_para_inteiro(ler_entrada())
        soma = soma_recursiva(entrada_int)
        print(formatar_resultado(entrada_int, soma))
    except ConversaoInteiroException as e:
        print("Erro de conversão:", e)

if __name__ == "__main__":
    processar_resultado()
1 resposta

Olá, Mauricio, como vai?

Seu código está muito bem estruturado e organizado. É ótimo ver que você utilizou as boas práticas de programação, separando as responsabilidades em funções diferentes, o que deixa o código mais limpo e fácil de entender.

A função soma_recursiva está correta e resolve o problema proposto de forma elegante. Além disso, a forma como você tratou as exceções com a classe ConversaoInteiroException e os blocos try e except demonstra um bom entendimento sobre como lidar com possíveis erros nas entradas do usuário.

Como um pequeno ajuste para tornar seu código ainda mais robusto, você poderia adicionar uma verificação na função soma_recursiva para valores menores que 1. Atualmente, se o usuário digitar 0 ou um número negativo, o programa pode não se comportar como o esperado, resultando em uma "RecursionError".

Continue praticando e compartilhando seus exercícios no fórum. Estamos aqui para ajudar e acompanhar seu progresso. Se tiver dúvidas, pode contar com a gente.

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