python print时 如何按列对齐

a_list = [1, 9]
for i in a_list:
    print(1 * i, 2 * i, 3 * i)

他会输出
1 2 3
9 18 27
上下没有对齐

有什么办法能让他 上下对齐呢? 有几个方法呢?


a_list = [1, 9]
for i in a_list:
    print('{:>2d} {:>2d} {:>2d}'.format(1 * i, 2 * i, 3 * i))

无非2种办法
一种简单的,print(1 * i, 2 * i, 3 * i,sep='\t'),但是字符长度不能相差太大,最长的字符串比最短的字符串多4个以上就没法对齐了
另一种是利用格式化字符串'{:>10}',这里你可以用format,也可以用f关键字,或者%,几种传参方式进行传参


a_list = [1, 9]
for i in a_list:
    print(1 * i, 2 * i, 3 * i ,sep='\t')
    # print('{}\t{}\t{}'.format( 1 * i, 2 * i, 3 * i ))
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7433262
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:python中print输出有空格解决办法
  • 除此之外, 这篇博客: python面试中的 67.有这样一段代码,print c会输出什么,为什么? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • a = 10
    b = 20
    c = [a]
    a = 15
    

    答:10对于字符串,数字,传递是相应的值

  • 您还可以看一下 覃秉丰老师的python入门课程中的 print用法小节, 巩固相关知识点