fjsboy 发表于 2022-11-14 21:35:53

课后作业 更改杨辉三角形

tringle = []
for i in range(10):
    tringle.append([])
    for j in range(10):
      tringle.append(0)

for i in range(10):
    tringle = 1
    tringle = 1

for i in range(2,10):
    for j in range(1,10):
      tringle = tringle + tringle

for i in range(10): # 从这里输出杨辉三角形开始 完全没弄明白。。
    for k in range((10-i)//2):
      print('\t', end='')
    for j in range(i+1):
      # 要形成“隔行错开”的效果,所以我们在偶数行加4个空格
      if i % 2 == 1:
            print("    ", end='\t')
      print(tringle, end='')
    print()

jackz007 发表于 2022-11-14 22:14:09

本帖最后由 jackz007 于 2022-11-14 22:50 编辑

tringle = []
for i in range(10):
    tringle.append([])
    for j in range(10):
      tringle.append(0)

for i in range(10):
    tringle = 1
    tringle = 1

for i in range(2,10):
    for j in range(1,10):
      tringle = tringle + tringle

for i in range(10):                     # 杨辉三角总共需要打印 10 行
    print('\t' * ((10-i) // 2) , end='')# 这一行的意思是根据不同的行号打印对应数量的前导 '\t' 字符,以便打印内容能够形成三角形的形态
    for j in range(i + 1) :               # 按行打印元素,例如,第 1 行打印 1 个,第2行打印 2 个,. . . . . .第 10 行打印 10 个                                          
      if i % 2 == 1:                  # 如果行号是奇数
            print("    ", end='\t')       # 打印这些内容(为了行间错开)
      print(tringle, end='')      # 最后打印列表元素
    print()                               # 打印完一行,输出一个换行符
      这是我写的
def yang(n):
    r = [ for i in range(n)]
    for i in range(2 , n):
      for j in range(1 , i):
            r = r + r
    return r

n = int(input('输入 n : ') . strip())
d = yang(n)
for i in range(n):
    s = ' ' * (n - i - 1) * 2 + '%3d' % d
    for j in range(1 , i + 1):
      s += ' %3d' % d
    print(s)
页: [1]
查看完整版本: 课后作业 更改杨辉三角形