Python - el programa devuelve siempre el valor 0

 
Vista:
sin imagen de perfil

el programa devuelve siempre el valor 0

Publicado por mauro (14 intervenciones) el 05/11/2018 15:06:33
Sea el siguiente código en python:

1
2
3
4
5
6
7
8
9
10
11
```python
def factorial(numero):
    """Devuelve el factorial de un número ingresado
    """
    out = 1
 
    for i in range(numero):
        out *= i
 
    return out
```

Por algún error en el programa, el programa devuelve siempre el valor 0.
1. ¿Cuál es el error?
2. ¿Por qué sucede?
3. ¿Cómo se soluciona?
TRATE DE SOLUCIONARLO PERO NO ME SALE Y NO SE COMO DEDUCIR MUCHO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

el programa devuelve siempre el valor 0

Publicado por kip (257 intervenciones) el 05/11/2018 15:29:13
Hola, el valor de 0 te lo da porque la funcion range() siempre empieza desde 0, para que empiece desde 1 debes pasarle este como primer parametro.

range([start], stop[, step])

1
for i in range(1, numero):

Posiblemente tampoco te de el resultado correcto, porque el rango que retorna range() es exclusivo con respecto al parametro "stop":

1
2
>>> range(1, 8)
[1, 2, 3, 4, 5, 6, 7]

Para solucionarlo simplemente sumale un 1 al limite:

1
2
>>> range(1, 8 + 1)
[1, 2, 3, 4, 5, 6, 7, 8]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

el programa devuelve siempre el valor 0

Publicado por tincopasan (1082 intervenciones) el 05/11/2018 15:31:56
básicamente al poner range() comienza en 0 y cualquier número multiplicado por 0 da 0

deberías probar:
1
for i in range(1,numero+1) #esto es para que comience en 1 y le sumo 1 a número  sino en realidad no toma el ingresado :
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar