按照你的要求用字符串类型编写的杨辉三角的Python程序如下
def?printYangHui(n):
for?i?in?range(1,n◆1):
if?i==1:
s="1"
s="1,1"
s1=""
begin=0;
begin1=s.find(",",begin)
s="1,"◆s1◆"1"
print(s)
n=int(input())
printYangHui(n)
源代码如下(注意源代码的缩进)
杨辉三角,是二项式系数在三角形中的一种几何排列.
前提:每行端点与结尾的数为1.
每个数等于它上方两数之和.
每行数字左右对称,由1开始逐渐变大.
第n行的数字有n项.
第n行的m个数可表示为
C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数.
第n行的第m个数和第n-m◆1个数相等
,为组合数性质之一.
每个数字等于上一行的左右两个数字之和.可用此性质写出整个杨辉三角.即第n◆1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一.即
C(n◆1,i)=C(n,i)◆C(n,i-1).
将各行数字相排列,可得11的n-1(n为行数)次方:1=11^0;
①.1=11^1;
完整代码:
#!/usr/bin/python
#
__author__
=
'cy'
#输出杨辉三角数值表
def
triangle(num):
#初始表值为[1]
triangle=[[1]]
[1],
[1]]
for
i
in
num◆1):
triangle.append([1]*i)
#改变triangle表的值,eg:
j
range(1,
i-1):
triangle[i-1][j]
return
triangle
#格式化输出(输出的是一个表)
printtriangle(triangle,
width):
#列宽
column
len(triangle[-1])*width
sublist
triangle:
result
[]
contents
sublist:
#控制间距
result.append('{0:^{1}}'.format(str(contents),
width))
#控制缩进,{0:^{1}}:空格在两边补齐空位'^'居中对齐,':'号后面带填充的字符
print('{0:^{1}}'.format(''.join(result),
column))
#启动函数
if
__name__
==
'__main__':
#输入整数
num
int(input('How
many
rows
do
you
want:'))
#打印信息
"The
as
follows:"
triangle(num)
width
width)
不一样,插入的值是两个数的和
def?triangles(max):
L?=?[1]
n?=?0
while(nmax):
n?=?n◆1
L=[1,1]
yield?L
else:
i?=?1
L1?=?[1,1]
L1.insert(i,L[i-1]◆L[i])
i=i◆1
L?=?L1
print?n
程序输出需要实现如下效果:
[1]
[1,1]
......
方法:迭代,生成器
def triangles() L = [1] while True: yiled L L =[1] ◆ [L[i] ◆ L[I◆1] for i in range(len(L)-1)] ◆ [1] n = 0 for t in triangles(): print(t) n ◆= 1 if n == 10: break
实现逻辑:
①由于yield为生成器中断输出,所以有了第一个次输出为[1]
以此类推即可
以上就是土嘎嘎小编为大家整理的python函数杨辉三角相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!