首页 > 解决方案 > 从用户那里获取输入并找到输入的阶乘

问题描述

我想定义一个函数阶乘(x),但我想这样做

x = int(input("x"))

需要在函数内部

该函数应该是递归的。所以它需要自己调用。

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

任何人都可以定义这样的工作功能吗?

标签: python

解决方案


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

   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

推荐阅读