自定义非递归阶乘函数在执行后拒绝进一步输入

Custom non-recursive factorial function refuses further input after execution

我正在尝试在 Python 中编写一个简单的 factorial 函数,但是在执行时,这个函数什么都不做,并且由于某些奇怪的原因而导致控制台崩溃。

请记住,我大约一周前才开始使用 Python 进行编码,并且习惯使用其他较低级别的 OOP 语言,所以请原谅任何明显的错误。

这是我当前的函数:

# initialise factorial function:
def factorial(n):
    i = 1 # initialise incrementing variable
    while i < n:
        n = n * i
        i = i + 1
    return n # return result

该函数什么也不打印,并拒绝任何进一步的输入。

试试这个函数:(适用于 n >= 0)

def factorial(n):
    r = 1
    i = 2
    while i <= n:
        # Use shorter version
        r *= i
        i += 1
    return r

或者(适用于 n > 0)

def factorial(n):
    i = n
    while i > 1:
        i -= 1
        n *= i
    return n
n=int(input("Enter a number "))
result=1
for i in range(1,n+1):
    if i<n:
        result=result*(i+1)
print("Factorial of {} is {}".format(n,result))