Python 从用户处获取输入并找到输入的阶乘

Python 从用户处获取输入并找到输入的阶乘,python,Python,我想定义一个factorialx函数,但我想用我想要的方式 x = int(input("x")) 需要在函数内部 函数应该是递归的。因此,它需要自救 我尝试过这样做,但由于每个递归步骤都会调用输入,因此函数无法按预期方式工作 有人能定义这样一个工作函数吗?您可以让factorial的输入成为一个可选参数,默认值为None。当没有输入值时,将提示一个值。设置输入后,只需使用众所周知的阶乘递归公式即可 def factorial(n=None): # optional default p

我想定义一个factorialx函数,但我想用我想要的方式

x = int(input("x"))
需要在函数内部

函数应该是递归的。因此,它需要自救

我尝试过这样做,但由于每个递归步骤都会调用输入,因此函数无法按预期方式工作


有人能定义这样一个工作函数吗?

您可以让factorial的输入成为一个可选参数,默认值为None。当没有输入值时,将提示一个值。设置输入后,只需使用众所周知的阶乘递归公式即可

   def factorial(n=None):  # optional default parameter
        if n == None:      # sets value when no input
            n = int(input('Enter number: '))

        if n == 0:
            return 1
        else:
            return n * factorial(n-1)

    print(factorial())  # prompts for input

你为什么有要求1?请看一下这个@Sri9911。你链接的答案没有回答OP的问题