这个问题烦恼了挺久,一般情况下我都是用解决,但其实这样的办法并不是很nice,然后今天在写一个demo的时候实在看不下去,就百度科普了一波,确实是有比较nice的解决方案。

像这样:

令人十分难受啊!

#-------------------------------------------------------------------------------------------------

在此之前先说一下python中的.format格式化输出

python2.6开始,可以使用str.format进行轻松的格式化,

如上可以看到,对变量的处理简洁灵活,此外对数字的各种位数处理也很到位

{:为右对齐,^为居中),少于x位自动补齐(默认为空格补齐)

这里值得注意的是,x也可以作为变量代入:

#-----------------------------------------------------------------------------------------------------

着手解决问题,

第一反应使用制表符,带来的问题便是字符串长度差距超过一个制表位时,会跳到下一个制表位,如图:

不能接受,使用str.format补齐name属性的长度为25

结果却是这样的:

py虽好,有些细节还是没有照顾到中文

这里补齐长度时中文字符也按1字节计算了,

然而我们知道,utf-8中中文占用3个字节,GBK中占用了2个字节,只算作1字节显然不能对齐

这时求助于prettytable包输出表格,然而输出也不理想,可以想象也没有考虑中文编码的问题(或是需要设置编码为utf-8或gbk?)

分析一下理想的name所占的长度,应为固定的x字节(这里按目前的爬取结果暂时取22)

那么他的补齐长度应为

len = 22 - gbk编码下name的字节数 + name的字符数

幸运的是str.format支持使用变量代替补齐长度的值

尝试以下代码:

print('[{name:

结果十分接近理想了:

还是有一些迷之问题导致1-0.5字节长度的偏差,猜测是由于中文字体不是等宽字体的缘故?

然而不用多虑,这里就可以使用一记粗暴的制表符解决问题了

print('[{name:

大功告成!

python如何对齐输出_python对齐输出相关推荐

  1. python a和b字符串和占位符输出_python格式化输出

    python格式化输出 一.格式化输出三种方式 在写程序的过程中难免要得,输出有有特色的格式来,没有特色,谁还会耐得下去看呢,恐怕自己都写小烦躁,不要不要得,毕竟人就是个神奇的小动物嘛,所以说不得不提 ...

  2. python如何控制输出格式_python格式化输出

    python格式化输出 一.格式化输出三种方式 在写程序的过程中难免要得,输出有有特色的格式来,没有特色,谁还会耐得下去看呢,恐怕自己都写小烦躁,不要不要得,毕竟人就是个神奇的小动物嘛,所以说不得不提 ...

  3. python数据输出_python数据输出

    下面的是我的code, 但是最后的结果全部都是others,有哪位大神能帮忙看产生输出的最简单方法是使用print语句,可以通过用逗号分隔零个或多个表达式.这个函数传递表达式转换为一个字符串,如下结果 ...

  4. python怎么输出_Python如何输出整数

    Python输出整数的方法: 先使用str()函数将数字转换成字符串赋值给变量i,再用"if i.count('.') == 0"语句判断字符串中是否没有小数点,如果是则输出这个字 ...

  5. python语言格式化输出_Python | 格式化输出字符串

    一直以来,字符串的格式化输出对于编程来说,尤其是新手,还是挺麻烦的.对于这部分的内容,笔者的建议是,只要大致能满足输出要求,越简单越好,别整那复杂的~(图文无关[俏皮]) 工具/原料 Python 2 ...

  6. python画图颜色设置_python画图--输出指定像素点的颜色值方法

    python画图--输出指定像素点的颜色值方法 如下所示: # -*- coding: utf-8 -*- #--------------------------------------------- ...

  7. python数据的格式输出_Python格式化输出

    "%"的使用 格式符 描述 %s 字符串 (采用str()的显示) %r 字符串 (采用repr()的显示) %c 单个字符及其ASCII码 %u 整数(无符号) %b 二进制整数 ...

  8. python语言format用法_python格式化输出之format用法

    多种格式化 'b' - 二进制.将数字以2为基数进行输出. 'c' - 字符.在打印之前将整数转换成对应的Unicode字符串. 'd' - 十进制整数.将数字以10为基数进行输出. 'o' - 八进 ...

  9. python菱形星号图案_python如何输出星号组成的菱形图形?

    python如何输出星号组成的菱形图形? python输出星号组成的菱形图形的方法: 读入一个整数N,N是奇数,输出由星号字符组成的菱形三角形,要求:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪ ...

最新文章

  1. 使用screen/byobu 管理你的远程会话
  2. JavaScript Math和Number对象
  3. 在Linux CentOS上编译CoreCLR
  4. Android 内容提供器---内容提供器基础(内容的统一资源标识(URIs))
  5. ofstream与ate的故事
  6. java outlook 发送邮件_基于java使用JavaMail发送邮件
  7. 【Codeforces811E】Vladik and Entertaining Flags [线段树][并查集]
  8. BZOJ1079[SCOI2008] 着色方案
  9. 数据结构——郝斌老师——部分笔记
  10. 怎么将几张pdf合并成一张_如何将多个PDF合并成一个PDF?PDF文档合并成单个的方法...
  11. imdb导mysql_IMDB电影排行爬取分析
  12. Fst, pi, TajimaD plink 计算
  13. FAN73893MX 350mA-650mA 高压600V 用于高压、高速驱动 MOSFET和IGBT 三相半桥栅极驱动 IC
  14. hdu 2481 树状数组 双关键字排阻
  15. Unity制作别踩白块儿
  16. HTTP状态码监测分析
  17. Solidworks如何为装配体绘制剖面视图
  18. Oracle EBS 定义值集的段值与快码的公用查看
  19. Bin Packing Problem
  20. 【netcat学习】学习使用网络工具中的瑞士军刀——NetCat

热门文章

  1. 第四次作业之四则运算
  2. osEye.Net:离别是为了将来的重逢
  3. 周轶璐教授:服务好医生,如何更全面地了解数据、利用数据?
  4. MPEG-4与H264区别,编码及应用
  5. a1a2b1b2c1c2语言级别区分,西班牙语 | 西班牙语的等级是怎么划分的?(A1/A2、B1/B2、C1/C2)...
  6. Linux中的UID与GID
  7. 好斗or炒作?甲骨文“撕咬”过的那些对手 - 爱上英语题库系统|郭雄飞
  8. luogu P4643 [国家集训队]阿狸和桃子的游戏
  9. cdma特有效应_cdma系统中的远近效应
  10. PPT另存为PDF图片去白边