Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python 3.5阶乘_Python 3.x_Factorial - Fatal编程技术网

Python 3.x Python 3.5阶乘

Python 3.x Python 3.5阶乘,python-3.x,factorial,Python 3.x,Factorial,我试图使用上面的代码为用户输入的任何数字生成一个阶乘。如何在不使用python阶乘函数的情况下使用上述代码实现这一点。如何使用阶乘函数也能做到这一点?在迭代过程中,您正在修改I。你能试试吗 i = input("Enter number", ) for i in range(i): i= i *(i+1) print(i) 您也可以通过这种方式递归地执行此操作 i = int(input("Enter number", )) f = 1 for j in range(i):

我试图使用上面的代码为用户输入的任何数字生成一个阶乘。如何在不使用python阶乘函数的情况下使用上述代码实现这一点。如何使用阶乘函数也能做到这一点?

在迭代过程中,您正在修改
I
。你能试试吗

i = input("Enter number", )
for i in range(i):
    i= i *(i+1)
    print(i)

您也可以通过这种方式递归地执行此操作

i = int(input("Enter number", ))
f = 1
for j in range(i):
    f = f * (j+1)

print(f)

您可以从用户处获取整数形式的输入,然后传入阶乘函数,在使用递归时,您应该使用尾部递归函数,如

def recur_factorial(n):
   """Function to return the factorial
   of a number using recursion"""
   if n == 1:
       return n
   else:
       return n*recur_factorial(n-1)

print recur_factorial(5)
您可以将内置功能与以下简单功能结合使用:

def factorial2(x, fac):
   if x == 1:
     return fac
   else:
     return factorial2(x-1, x*fac)

factorial2(value_here,1)

通过导入
python

中的
math
库,使用此函数
math.factorial(value)
,请创建一个。通过示例输入,显示实际代码和当前/期望的结果。它给出了错误消息:TypeError:“str”对象不能解释为整数我在代码中添加了输入到int的转换不需要括号。是的,但我总是在可以的时候使用,因为这可能来自数学,但我确实喜欢明确的东西,但这是一种糟糕的Python风格。这只是一个代码示例,但正如我所说的,我知道,在软件上我使用分配给项目的样式指南(通常都是pep 8+google样式),并且根据pep 8,如果条件空格换行,则只在if语句上使用(),但要点仍然正确
import math
math.factorial(value_here)