创建Pascal';使用Python递归的s三角形

创建Pascal';使用Python递归的s三角形,python,recursion,python-3.4,Python,Recursion,Python 3.4,我正在做一个家庭作业,要求我用递归函数创建一个Pascal三角形。下面是我到目前为止所做的工作,以及我被赋予的工作。我对Python和编程还很陌生,所以我不知道从这里该往哪里走,如果有任何帮助,我将不胜感激 def组合(n,k): 打印((n-1)/(k-1))+((n-1)/k) def pascals_三角形(行): 对于范围内的行(行): 答案=”“ 对于范围(行+1)中的列: 答案=答案+组合(行、列)+“\t” 打印(答案) 帕斯卡三角(5) 事实上,您的答案中根本没有使用递归。我认为

我正在做一个家庭作业,要求我用递归函数创建一个Pascal三角形。下面是我到目前为止所做的工作,以及我被赋予的工作。我对Python和编程还很陌生,所以我不知道从这里该往哪里走,如果有任何帮助,我将不胜感激

def组合(n,k):
打印((n-1)/(k-1))+((n-1)/k)
def pascals_三角形(行):
对于范围内的行(行):
答案=”“
对于范围(行+1)中的列:
答案=答案+组合(行、列)+“\t”
打印(答案)
帕斯卡三角(5)

事实上,您的答案中根本没有使用递归。我认为您正在尝试编写公式nCk=(n-1)C(k-1)+(n-1)Ck。因此,您需要从自身内部调用
组合
(带有“结束”条件的保护:nC0=nCn=1):

输出:

1   
1   1   
1   2   1   
1   3   3   1   
1   4   6   4   1
请注意,这是一种效率极低的方法:每次获得二项式系数时,都要使用相同的参数多次调用
combination
。你可以考虑缓存你找到的系数,


代码的另一个问题是,
组合
函数实际上没有返回任何内容,它只是打印一个值并退出(返回
)。

事实上,您在回答中根本没有使用递归。我认为您正在尝试编写公式nCk=(n-1)C(k-1)+(n-1)Ck。因此,您需要从自身内部调用
组合
(带有“结束”条件的保护:nC0=nCn=1):

输出:

1   
1   1   
1   2   1   
1   3   3   1   
1   4   6   4   1
请注意,这是一种效率极低的方法:每次获得二项式系数时,都要使用相同的参数多次调用
combination
。你可以考虑缓存你找到的系数,


代码的另一个问题是,
组合
函数实际上没有返回任何内容,它只是打印一个值并退出(返回
)。

事实上,您在回答中根本没有使用递归。我认为您正在尝试编写公式nCk=(n-1)C(k-1)+(n-1)Ck。因此,您需要从自身内部调用
组合
(带有“结束”条件的保护:nC0=nCn=1):

输出:

1   
1   1   
1   2   1   
1   3   3   1   
1   4   6   4   1
请注意,这是一种效率极低的方法:每次获得二项式系数时,都要使用相同的参数多次调用
combination
。你可以考虑缓存你找到的系数,


代码的另一个问题是,
组合
函数实际上没有返回任何内容,它只是打印一个值并退出(返回
)。

事实上,您在回答中根本没有使用递归。我认为您正在尝试编写公式nCk=(n-1)C(k-1)+(n-1)Ck。因此,您需要从自身内部调用
组合
(带有“结束”条件的保护:nC0=nCn=1):

输出:

1   
1   1   
1   2   1   
1   3   3   1   
1   4   6   4   1
请注意,这是一种效率极低的方法:每次获得二项式系数时,都要使用相同的参数多次调用
combination
。你可以考虑缓存你找到的系数,



代码的另一个问题是,
composition
函数实际上没有返回任何内容,它只是打印一个值并退出(返回
None
)。

此时您无法解决的问题到底是什么?看起来您希望
composition(行、列)
返回一个字符串,但它只是打印到终端,然后返回
None
@我得到了一个ZeroDivision错误,我不知道为什么。@RialJohnson你得到的是被零除的结果,因为
range(n)
0
迭代到
n-1
。你到底有什么问题不能解决,此时?看起来您希望
组合(行、列)
返回一个字符串,但它只是打印到终端,然后返回
None
@I得到了一个ZeroDivision错误,我不知道为什么。@RialJohnson您得到的是被零除的结果,因为
范围(n)
0
迭代到
n-1
。此时您无法解决的问题到底是什么?看起来您希望
组合(行、列)
返回字符串,但它只是打印到终端,然后返回
None
@我得到了一个ZeroDivision错误,我不知道为什么。@RialJohnson你得到的是被零除的结果,因为
range(n)
0
迭代到
n-1
。你到底有什么问题不能解决,此时?看起来您希望
组合(行、列)
返回一个字符串,但它只是打印到终端,然后返回
None
@I得到了一个ZeroDivision错误,我不知道为什么。@RialJohnson您得到的是被零除的结果,因为
范围(n)
0
迭代到
n-1
。谢谢,这非常适合我的需要!在阅读了大量有关递归的书籍(我是一名学生,对Python非常陌生)之后,我能够接近您给出的解决方案,但是您的解释确实帮助了很多!谢谢,这完全符合我的需要!在阅读了大量有关递归的书籍(我是一名学生,对Python非常陌生)之后,我能够接近您给出的解决方案,但是您的解释确实帮助了很多!谢谢,这完全符合我的需要!在阅读了大量有关递归的书籍(我是一名学生,对Python非常陌生)之后,我能够接近您给出的解决方案,但是您的解释确实帮助了很多!谢谢,这非常有效