帕斯卡三角形 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])

引用地址

你可能感兴趣的:(帕斯卡三角形 python)