donkeylord 发表于 2017-11-11 15:32:05

关于format对齐后的换行问题,运用右对齐后实现不了10个字符换行

def fbnq(n):
    if n == 1:
      return 1
    elif n == 0:
      return 0
    else:
      return fbnq(n-1)+fbnq(n-2)

count = 0
for i in range(1,21):
    print('{0:5}'.format(fbnq(i)))
    if count % 10 == 0:
      print('\n')
    count += 1

   




想实现打印十个字符换行,为什么实现不了


BngThea 发表于 2017-11-11 16:15:19

本帖最后由 BngThea 于 2017-11-11 22:04 编辑

仔细检查了一下,存在两个问题:
1 第一个print后面缺少end参数,导致每次执行都会换行
2 count初始化为0,导致第一个数就会换行

修改如下:
def fbnq(n):
    if n == 1:
      return 1
    elif n == 0:
      return 0
    else:
      return fbnq(n-1)+fbnq(n-2)

count = 1
for i in range(1,21):
    print('{0:5}'.format(fbnq(i)),end=' ')
    if count % 10 == 0:
      print('\n')
    count += 1

输出结果:
    1   1   2   3   5   8    13    21    34    55

   89   144   233   377   610   9871597258441816765
页: [1]
查看完整版本: 关于format对齐后的换行问题,运用右对齐后实现不了10个字符换行