python如何对齐输出_python对齐输出
这个问题烦恼了挺久,一般情况下我都是用解决,但其实这样的办法并不是很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对齐输出相关推荐
- python a和b字符串和占位符输出_python格式化输出
python格式化输出 一.格式化输出三种方式 在写程序的过程中难免要得,输出有有特色的格式来,没有特色,谁还会耐得下去看呢,恐怕自己都写小烦躁,不要不要得,毕竟人就是个神奇的小动物嘛,所以说不得不提 ...
- python如何控制输出格式_python格式化输出
python格式化输出 一.格式化输出三种方式 在写程序的过程中难免要得,输出有有特色的格式来,没有特色,谁还会耐得下去看呢,恐怕自己都写小烦躁,不要不要得,毕竟人就是个神奇的小动物嘛,所以说不得不提 ...
- python数据输出_python数据输出
下面的是我的code, 但是最后的结果全部都是others,有哪位大神能帮忙看产生输出的最简单方法是使用print语句,可以通过用逗号分隔零个或多个表达式.这个函数传递表达式转换为一个字符串,如下结果 ...
- python怎么输出_Python如何输出整数
Python输出整数的方法: 先使用str()函数将数字转换成字符串赋值给变量i,再用"if i.count('.') == 0"语句判断字符串中是否没有小数点,如果是则输出这个字 ...
- python语言格式化输出_Python | 格式化输出字符串
一直以来,字符串的格式化输出对于编程来说,尤其是新手,还是挺麻烦的.对于这部分的内容,笔者的建议是,只要大致能满足输出要求,越简单越好,别整那复杂的~(图文无关[俏皮]) 工具/原料 Python 2 ...
- python画图颜色设置_python画图--输出指定像素点的颜色值方法
python画图--输出指定像素点的颜色值方法 如下所示: # -*- coding: utf-8 -*- #--------------------------------------------- ...
- python数据的格式输出_Python格式化输出
"%"的使用 格式符 描述 %s 字符串 (采用str()的显示) %r 字符串 (采用repr()的显示) %c 单个字符及其ASCII码 %u 整数(无符号) %b 二进制整数 ...
- python语言format用法_python格式化输出之format用法
多种格式化 'b' - 二进制.将数字以2为基数进行输出. 'c' - 字符.在打印之前将整数转换成对应的Unicode字符串. 'd' - 十进制整数.将数字以10为基数进行输出. 'o' - 八进 ...
- python菱形星号图案_python如何输出星号组成的菱形图形?
python如何输出星号组成的菱形图形? python输出星号组成的菱形图形的方法: 读入一个整数N,N是奇数,输出由星号字符组成的菱形三角形,要求: ...
最新文章
- 使用screen/byobu 管理你的远程会话
- JavaScript Math和Number对象
- 在Linux CentOS上编译CoreCLR
- Android 内容提供器---内容提供器基础(内容的统一资源标识(URIs))
- ofstream与ate的故事
- java outlook 发送邮件_基于java使用JavaMail发送邮件
- 【Codeforces811E】Vladik and Entertaining Flags [线段树][并查集]
- BZOJ1079[SCOI2008] 着色方案
- 数据结构——郝斌老师——部分笔记
- 怎么将几张pdf合并成一张_如何将多个PDF合并成一个PDF?PDF文档合并成单个的方法...
- imdb导mysql_IMDB电影排行爬取分析
- Fst, pi, TajimaD plink 计算
- FAN73893MX 350mA-650mA 高压600V 用于高压、高速驱动 MOSFET和IGBT 三相半桥栅极驱动 IC
- hdu 2481 树状数组 双关键字排阻
- Unity制作别踩白块儿
- HTTP状态码监测分析
- Solidworks如何为装配体绘制剖面视图
- Oracle EBS 定义值集的段值与快码的公用查看
- Bin Packing Problem
- 【netcat学习】学习使用网络工具中的瑞士军刀——NetCat
热门文章
- 第四次作业之四则运算
- osEye.Net:离别是为了将来的重逢
- 周轶璐教授:服务好医生,如何更全面地了解数据、利用数据?
- MPEG-4与H264区别,编码及应用
- a1a2b1b2c1c2语言级别区分,西班牙语 | 西班牙语的等级是怎么划分的?(A1/A2、B1/B2、C1/C2)...
- Linux中的UID与GID
- 好斗or炒作?甲骨文“撕咬”过的那些对手 - 爱上英语题库系统|郭雄飞
- luogu P4643 [国家集训队]阿狸和桃子的游戏
- cdma特有效应_cdma系统中的远近效应
- PPT另存为PDF图片去白边