Comenzamos pidiendo al usuario que introduzca un número. Si no se introduce nada se calculará el factorial de 5. Observe el operador lógico
or
.Introducimos un control de excepciones por si se produce un error. Observe que antes del
input
hemos añadido int
para asegurarnos que entran números enteros. Si se añade un texto o un número decimal se produciría un error. El tratamiento de las excepciones o errores se consigue con try
y con except
.#Calcula el factorial de un número entero mayor o igual a cero, hasta 120
#Si no se introduce ningún número se calcula el factorial de 5
while True:
try:
n=int(int(input("Introduzca un número entero, no negativo: ") or 5))
break
except ValueError:
print("No es un número válido, pruebe de nuevo.")
factor=1 #por definición el factorial de cero es 1
if n>0:
for i in range(1,n+1):
factor *=i
print("El factorial de ",n," es = ",factor)
elif n<0:
print("El número no puede ser negativo.")
else:
print("El factorial de cero, por definición, es 1")
Para el cálculo del factorial observe la expresión
factor*=i
, que permite ir multiplicando los valores sucesivos.Hemos añadido un
if
ya que por definición el factorial de cero es uno.
No hay comentarios:
Publicar un comentario