代码之家  ›  专栏  ›  技术社区  ›  Renee

方块和立方体表

  •  -1
  • Renee  · 技术社区  · 3 年前

    我正在自学Python,我在买一本书时遇到了一个问题。我似乎只能正确地得到数字,但我不能得到标题。我想知道这和 format 如何让它看起来更好?到目前为止,我的情况是:

    number = 0
    square = 0
    cube = 0
    
    for number in range(0, 6):
        square = number * number
        cube = number * number * number
        print(number, square, cube)
    

    0  0  0
    1  1  1
    2  4  8
    3  9  27
    4  16 64
    5  25 125
    

    number    square    cube
         0         0       0
         1         1       1
         2         4       8
         3         9      27
         4        16      64
         5        25     125
    

    提前感谢您的帮助:D

    4 回复  |  直到 3 年前
        1
  •  1
  •   bherbruck    3 年前

    您需要打印标题行。我用标签 \t 把我们的数字和f-stings隔开,因为它们太棒了。

    number = 0
    square = 0
    cube = 0
    
    # print the header
    print('number\tsquare\tcube')
    
    for number in range(0, 6):
        square = number * number
        cube = number * number * number
        # print the rows using f-strings
        print(f'{number}\t{square}\t{cube}')
    

    输出:

    number  square  cube
    0       0       0
    1       1       1
    2       4       8
    3       9       27
    4       16      64
    5       25      125
    

    唯一做不到的是右对齐列,您必须为它编写一些自定义打印函数,该函数根据列中的每一项来确定列的适当宽度。老实说,这里的输出没有任何区别,我只关注代码的实用性,而不是打印到终端时的样子。

        2
  •  2
  •   sharath k    3 年前

    print('number    square    cube')
    for x in range(0, 6):
      print('{0:6d}\t {1:7d}\t {2:3d}'.format(x, x*x, x*x*x))
    

    这将导致

    number    square    cube
         0         0       0
         1         1       1
         2         4       8
         3         9      27
         4        16      64
         5        25     125
    
        3
  •  1
  •   hrokr    3 年前

    有一个更简洁的方法,你可以考虑也使用 format Format Specification Mini-Language 可能有用。加上f-stings,代码从8行增加到3行。

    print('number\tsquare\tcube')
    for number in range(0, 6):
        print(f'{number:>6}{number**2:>8}{number**3:>6}')
    

    >

    enter image description here

        4
  •  0
  •   Chirag Chadha    3 年前

    print('数字方块') 打印('{0:6d}\t{1:7d}\t{2:3d}'。格式(k,k) k、 k公司 k*k)