今天给大家介绍如何在打印字符串时,规则对齐的两种方法,帮助大家在 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,放在桌面上,需要的时候打开一查,非常方便。。
ALIYUN::NAS::FileSystem类型用于创建文件系统。 语法 { "Type": "ALIYUN::NAS::...
1. 接口描述 接口请求域名: tke.tencentcloudapi.com 。 获得节点升级当前的进...
首先我们来看下PLC有哪些常用编程语言,然后我们再逐一分析每个语言的特点,大家...
如果您想设置一组ECS使用相同的公钥文件,而本地又没有公钥文件的备份,您可以通...
作者:吴斌 发挥 Elastic Stack 在日志和实时数据分析计算领域的一些优势,对流...
作者 | 木沉 来源 | 阿里技术公众号 首次上线应用,面对业务框架搭建你是否曾感...
上面我们介绍了PC服务器的机箱,这里我们再介绍下PC服务器内部硬件: 1、硬盘和...
...
调用DeleteCustomDomain接口删除自定义域名。 请求头 该接口使用公共请求头,无...
0 前言 近年来 物联网技术正以指数级的速度日渐成熟 并潜移默化的改变着人们的生...