Oi, Tiago! Tudo bem?
Indo direto ao ponto: o seu código chega ao resultado correto, mas ele não é uma função recursiva.
Na programação, uma função recursiva é aquela que chama a si mesma dentro do seu próprio corpo para resolver partes menores do problema. O seu código utilizou uma estrutura de repetição (while), o que o caracteriza como uma solução iterativa.
Uma análise rápida para te ajudar a diferenciar:
1. O que você fez (Abordagem iterativa)
Você criou uma lista, preencheu ela usando um laço while e depois somou os valores.
- Vantagem: É fácil de entender o fluxo linear.
- Ponto de atenção: Gastou memória extra criando uma lista desnecessária apenas para somar os números depois.
2. O que o exercício pediu (Abordagem recursiva)
Na recursão, em vez de um "loop", a função "pergunta" o resultado para ela mesma com um valor menor, até chegar na base (que é o 1).
Veja a diferença na estrutura:
def somando_recursivamente(n):
# Condição de parada (Base Case)
if n == 1:
return 1
# Chamada recursiva: a função chama a si mesma
return n + somando_recursivamente(n - 1)
resultado = int(input('Digite um numero: '))
print(f'A soma de 1 até {resultado} é {somando_recursivamente(resultado)}')
Por que a sua não é recursiva?
Para ser recursiva, você teria que ver a linha somando_recursivamente(...) dentro do bloco de código da própria função. No seu caso, você usou o while para controlar a repetição.
Espero ter ajudado.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!