使用 Python 打印漂亮的表格,这两项基本功你可会?

发表于:2020-12-02 11:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:写代码的明哥    来源:Python编程时光

#
Python
分享:
  今天给大家介绍如何在打印字符串时,规则对齐的两种方法,帮助大家在 shell 界面下输出漂亮的表格。
  第一种:使用 format
  先来看几个小 demo
  左对齐
  >>> "{:<10}".format("a") 
  'a         ' 
  >>>  
  右对齐
  >>> "{:>10}".format("a") 
  '         a' 
  >>>
  居中
  >>> "{:^10}".format("a") 
  '    a     ' 
  >>> 
  当你不指定 < 、>、^ 时,默认就是左对齐
  >>> "{:10}".format("a") 
  'a         ' 
  >>> 
  有了上面的铺垫,写一个整齐的 1-10 的平方、立方表就很容易了。
  >>> for x in range(1, 11): 
  ...        print('{:2d} {:3d} {:4d}'.format(x, x*x, x*x*x)) 
  ... 
   1   1    1 
   2   4    8 
   3   9   27 
   4  16   64 
   5  25  125 
   6  36  216 
   7  49  343 
   8  64  512 
   9  81  729 
  10 100 1000
  对齐的思想其实就是在不足的位自动给你补上空格。
  如果不想使用空格,可以指定你想要的字符进行填充,比如下面我用 0 来补全。
  >>> for x in range(1, 11): 
  ...     print('{:02d} {:03d} {:04d}'.format(x, x*x, x*x*x)) 
  ...  
  01 001 0001 
  02 004 0008 
  03 009 0027 
  04 016 0064 
  05 025 0125 
  06 036 0216 
  07 049 0343 
  08 064 0512 
  09 081 0729 
  10 100 1000
  第二种:使用 ljust, rjust左对齐
  >>> "a".ljust(10) 
  'a         ' 
  >>> 
  右对齐
  >>> "a".rjust(10) 
  '         a' 
  >>> 
  居中
  >>> "a".center(10) 
  '    a     ' 
  >>>
  同样写一个整齐的 1-10 的平方、立方表
  >>> for x in range(1, 11): 
  ...     print(' '.join([str(x).ljust(2), str(x * x).ljust(3), str(x * x * x).ljust(4)])) 
  ...  
  1  1   1    
  2  4   8    
  3  9   27   
  4  16  64   
  5  25  125  
  6  36  216  
  7  49  343  
  8  64  512  
  9  81  729  
  10 100 1000 
  如果不想使用空格,而改用 0 来补齐呢?可以这样
  >>> for x in range(1, 11): 
  ...     print(' '.join([str(x).rjust(2, "0"), str(x*x).rjust(3, "0"), str(x*x*x).rjust(4, "0")])) 
  ...  
  01 001 0001 
  02 004 0008 
  03 009 0027 
  04 016 0064 
  05 025 0125 
  06 036 0216 
  07 049 0343 
  08 064 0512 
  09 081 0729 
  10 100 1000
  以上就是今天的分享,很多漂亮的表格打印模块都是基于以上内置函数实现的,掌握了这两个,以后都可以自己实现啦~~希望本文对你能有帮助
  文末福利
  明哥整理了 21 张 Python 代码速查表,每一张都是国外的大师总结的,非常实用 ~
  还有 2 张高清的 PyCharm 快捷键一览图,一张 Windows ,一张 Mac,放在桌面上,需要的时候打开一查,非常方便。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号