帕斯卡三角形 python

题目出自python入门经典第六章课后题
解决思路如下:
每一行开始与结尾人为插入0元素,便于计算,在最后输出的时候不显示就可以了

lines = input("Input the lines:")
while not lines.isdigit():
    print("Please enter an integer:")
    lines = input("Input the lines:")
lines = int(lines)
tangle = []
temple = []
for i in range(lines):
    if i == 0:
        first = [0, 1, 0]
        tangle.append(first)
    else:
        for j in range(i+1):
            num = tangle[i - 1][j] + tangle[i - 1][j + 1]
            temple.append(num)
        temple.insert(0, 0)
        temple.append(0)
        tangle.append(temple)
        temple = []
for i in range(lines):
    str1 = " ".join('%s' % num for num in tangle[i][1:-1])
    print(str1.center(50))
Input the lines:6
                        1                         
                       1 1                        
                      1 2 1                       
                     1 3 3 1                      
                    1 4 6 4 1                     
                  1 5 10 10 5 1 

最后想要得到题目的风格,需要将列表变成字符串,然后使用center就可以居中表示。
我在转换的时候遇到一个问题TypeError: sequence item 0: expected str instance, int found
经过查看前辈们经验,知道是列表中数字不能直接转成字符串,所以要进行转换操作

str1 = " ".join('%s' % num for num in tangle[i][1:-1])

引用地址

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值