打印杨辉三角
采用调用三个函数的方法打印,基本路线是:
(1)生成杨辉三角数列,使用函数调用的方法生成杨辉三角总的列表
(2)将生成的列表进行字符转换,因为后边需要用join函数,随后生成元素为字符数字的杨辉三角列表
(3)将字符列表打印,生成杨辉三角。
在没有使用其他特别函数的情况下生成杨辉三角,思路清晰,结构简单,容易实现
代码实现如下:
def get_list(L):
‘’‘给一行生成下一行
[1,1]->[1,2,1]
‘’’
list1=[1]
for i in range(len(L)-1):
list1.append(L[i]+L[i+1]) #根据上一行的列表得到下一行的元素,为相邻两元素之和
list1.append(1)#给最后加1
return list1
def cycle_get_list(n):
‘’’
将生成的下一行列表传给get_list函数
并生成n行总体的列表
‘’’
line=[1]
R=[]#用来保存总体的行列表
for i in range(n):
R.append(line)#再次循环时line的值来自get_list(line)
line=get_list(line)#将get_list的返回值重新绑定line
return R
---------------------------------------
def get_yanghui_list(L):
‘’‘将cycle_get_list生成的列表
中的数字转化为字符串
‘’’
str_list=[str(x) for x in L]
str_yanghui_list=’ '.join(str_list)
return str_yanghui_list
def yanghui_str_list(L):
l=[get_yanghui_list(x) for x in L]#将总的列表进行遍历,
#利用get_yanghui_list(x)变为字符串
return l
def print_yanghui(L):
‘’‘打印杨辉三角
‘’’
max_len=len(L[-1])#以最后一个列表元素的长度居中打印
for x in L:
print(x.center(max_len))
#测试语句
n=20
SL=cycle_get_list(n)
lin=yanghui_str_list(SL)
print_yanghui(lin)