如何通过python中的用户输入找出阶乘数?

时间:2018-10-29 06:26:28

标签: python-3.x

我需要通过用户输入找出阶乘数,我已经尝试过这种方式,但是答案没有显示这是我的代码:

enter image description here

图像显示了我面临问题的阶乘代码

5 个答案:

答案 0 :(得分:1)

请删除代码中的第2行:

def factorial(n):

    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
n = input("enter the number")#python 2.x
n = int(input("enter the number"))#python 3.x
print(factorial(n))

答案 1 :(得分:0)

您可以在python中使用数学库。

import math

def factorial():
    n= int(input("enter a number"))
    print("Factorial of number ", math.factorial(n))

factorial()

def factorial():
    n = int(input("enter a number:"))
    factorial = 1
    if n == 0:
        print("The factorial of 0 is 1")
    else:
       for i in range(1,n + 1):
           factorial = factorial*i
       print("The factorial of number:",factorial)  

您还可以添加一个小于0的数字检查并使用elif。
或者,

def factorial(n):

    if n == 0:
        return 1
    else:
        return n * factorial(n-1)  
n = int(input("enter the number"))  
print(factorial(n))   

默认输入为字符串,您需要将其转换为int

答案 2 :(得分:0)

您试图在循环中实现递归,其中输入始终由用户提供。这将导致您的递归设置与预期的行为有所不同。相反,您可以按以下步骤实现它

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
n = int(input("enter the number"))# for python3.x
print(factorial(n))

现在n = input("enter the number")在递归循环之外,它仅被调用一次,并且在递归过程中不会从外部更新n。

答案 3 :(得分:0)

import math
print(math.factorial(int(input("enter the number"))))

答案 4 :(得分:0)

通过:

num=int(input("Enter The Number to show it factorial:"))
fact=1
for x in range(1,num+1):
     fact*=x
print("the factorial of this number is({})".format(fact))

同时:

n=int(input("Enter The Number:"))
x=1
fact=1
while(x<=n):
     fact*=x
     x+=1
     print(fact)