Python阶乘,需要;而";环

Python阶乘,需要;而";环,python,Python,我是一名python专业的学生,对python不熟悉,我需要编写一个程序,计算输入数字的阶乘,以找到在拼字游戏中仅使用“while”循环结构排列字母的可能方法。 例如:我最初通过这样一行请求用户输入号码: n = int(input("Enter an integer:")) 然后我需要用循环找到整个阶乘。我该怎么做呢?下面是我的全部代码,有人能告诉我有什么问题吗?它只是不断打印20的值: number_of_letters = int(input("Enter the numbers of

我是一名python专业的学生,对python不熟悉,我需要编写一个程序,计算输入数字的阶乘,以找到在拼字游戏中仅使用“while”循环结构排列字母的可能方法。
例如:我最初通过这样一行请求用户输入号码:

n = int(input("Enter an integer:"))
然后我需要用循环找到整个阶乘。我该怎么做呢?下面是我的全部代码,有人能告诉我有什么问题吗?它只是不断打印20的值:

number_of_letters = int(input("Enter the numbers of letters you have in hand:"))
n = number_of_letters

def factorial(number_of_letters):
    while number_of_letters > 1:
        a = number_of_letters
        n = n - 1
        result = a * n
        print('The number of combination for {}-letters words is {}'.format(number_of_letters, result))  # To display output
        break
        return result  # Do not remove this line

我认为问题在于,您正在比较
字母数>1
,同时减少
n
并保持
字母数
不变


另外,我不知道您试图用
break
语句归档什么,返回语句应该在函数内部,但在while之外,请尝试在每次迭代中打印出a和n。程序执行了错误的算法。用一些例子确保它能给你想要的结果。将会有一些变化。但是首先,修复代码的缩进。现在可以看到的不是有效的Python。然后告诉我们你的代码出了什么问题。你有错误吗?(什么错误?)你什么都没看到吗?有烟从键盘里冒出来吗?