用杨辉三角训练自己python基础

先写一份循环版

n = int(input('请输入三角形高度:'))
values = [1]

for i in range(n):
    new_values = [1]

    for index in range(len(values)):
        print('%d ' % values[index], end='')
        if (index < len(values) - 1):
            new_values.append(values[index] + values[index + 1])

    new_values.append(1)
    values = new_values
    print('')

再来一份定义函数递归版

def yht(number):
    list_=[]
    for i in range(number): #i是行数
        row=[]
        for j in range(i+1): #j是列数
            row.append(num_(i,j)) #创建函数方法
        list_.append(row)
    return list_
def num_(i,j):
    if j==0 or i==j:
        return 1
    else:
        return num_(i-1,j)+num_(i-1,j-1)

if __name__=='__main__':
    number=int(input('请输入三角形行数'))
    for item in yht(number):
        for a in item:
            print(a,end=' ')
        print('')

再来个列表错位相加版

def yht(number):
    list_1=[0,1]
    print(list_1[1])
    for i in range(1,number):
        list_ = [0]
        list_2=list_1[1:]+[0]
        for a in range(len(list_1)):
            num=list_1[a]+list_2[a]
            list_.append(num)
        list_1=list_
        for b in range(1,len(list_1)):
            print(list_1[b],end=' ')
        print('')


if __name__=='__main__':
    yht(int(input('请输入层数')))

还看到了短短几行就写完的,但目前的我实在看不懂,繁琐的过程就当复习一下python基础语法了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值