Quisiera saber por qué no me funciona el programa de esta forma y por qué me arroja el siguiente error. unsupported operand type(s) for *...

Tito Briceño Nieto

Tito Briceño Nieto

Pregunta
studenthace 5 años

Quisiera saber por qué no me funciona el programa de esta forma y por qué me arroja el siguiente error. unsupported operand type(s) for *: ‘int’ and ‘NoneType’

def factorial (numero): if numero == 1: return 1 else: resultado = numero * factorial (numero - 1) print(resultado) if __name__ == "__main__": numero = int(input('escriba un nuemero para calcular el factorial ')) respuesta = factorial (numero) ```
2 respuestas
para escribir tu comentario
    Eduardo Villota

    Eduardo Villota

    studenthace 5 años

    Hola!,

    El problema es que la función factorial no devuelve nada cuando el número es diferente de 1

    #! /usr/bin/python3 def factorial(numero): if numero == 1: return 1 else: #import ipdb; ipdb.set_trace() resultado = numero * factorial(numero - 1) print(resultado) return resultado if __name__ == "__main__": numero = int(input('escriba un nuemero para calcular el factorial ')) respuesta = factorial(numero)

    import ipdb; ipdb.set_trace()

    esta línea la usé para ver que está haciendo tu código, ojo este momento está comentada. #

    Suerte!/

    Alejandra Hincapie

    Alejandra Hincapie

    studenthace 5 años

    Hola, lo que sucede con tu código es que estas intentando operar dos tipos diferentes de datos: un entro y una función (

    numero * factorial(numero -1
    )) y esto no es posible en python, ya que python es un lenguaje “fuertemente tipado”, lo que significa que no permite mezclar tipos de datos.

Curso de Python 2019

Curso de Python 2019

Python es una pieza fundamental de varios sistemas de software más importantes del mundo. Simple, claro y con un código legible, Python es el lenguaje por excelencia para la programación web y la ciencia de datos. Aprende este lenguaje a partir de proyectos prácticos que harás desde cero.

Curso de Python 2019
Curso de Python 2019

Curso de Python 2019

Python es una pieza fundamental de varios sistemas de software más importantes del mundo. Simple, claro y con un código legible, Python es el lenguaje por excelencia para la programación web y la ciencia de datos. Aprende este lenguaje a partir de proyectos prácticos que harás desde cero.