Faça uma função em Python que calcula o fatorial de um número inteiro positivo através de comando de repetição.
Faça um programa principal para testar a função
Faça um programa principal para testar a função
Passo 1
Beleza! O enunciado pede para a gente criar em Python uma função que calcule o fatorial de um número inteiro positivo usando um laço de repetição. Depois, tem que fazer um “programa principal” para testar essa função.
Conteúdo: programação em Python – funções e estruturas de repetição (laço for).
O que vamos precisar:
Conteúdo: programação em Python – funções e estruturas de repetição (laço for).
O que vamos precisar:
- Entender o que é fatorial (teoria)
- Saber como criar função em Python
- Saber usar um
for
para repetir um cálculo várias vezes - Saber como montar um bloco “se executado diretamente” com
if __name__ == "__main__":
Passo 2
Primeiro, o que é fatorial? Para um inteiro
, definimos:
A ideia é multiplicar todos os números de 1 até
. No Python a gente pode fazer isso com um loop
for
.Passo 3
Vamos criar a função
fatorial(n)
:- Definimos uma variável
resultado = 1
. - Fazemos um laço
for i in range(1, n+1):
e, a cada passo, multiplicamosresultado *= i
. - No fim, retornamos
resultado
.
Assim construímos exatamente.
Passo 4
Agora, o programa principal:
- Pergunta pro usuário um número inteiro positivo.
- Chama
fatorial(n)
com esse valor. - Imprime o resultado.
Usamos o blocoif __name__ == "__main__":
para garantir que isso rode só quando chamar o script diretamente.
Resposta
def fatorial(n):
"""
Calcula o fatorial de n (n!) usando laço de repetição.
Recebe um inteiro n >= 0 e retorna n!.
"""
resultado = 1
for i in range(1, n + 1):
resultado *= i
return resultado
if __name__ == "__main__":
# Testa a função pedindo um valor ao usuário
num_str = input("Digite um número inteiro não negativo para calcular o fatorial: ")
try:
num = int(num_str)
if num < 0:
print("Ops! O número deve ser não negativo.")
else:
print(f"O fatorial de {num} é {fatorial(num)}")
except ValueError:
print("Isso não parece um inteiro válido.")