0
点赞
收藏
分享

微信扫一扫

python如何利用format对齐不能完全对齐的中文字符串

郝春妮 2022-04-23 阅读 40
python

对齐字符串方式有非常多种,但,面对含有中文字符串的情况时可能出现不能完全对齐的状况,无论是横向制表符还是预留空格,都不能有效完成大量数据的对齐,不过format是可以做到的。具体陈述如下,先看代码:

sale=[("《哪吒之魔童降世》",49.34),("《疯狂的外星人》",21.83),("《流浪地球》",46.18), \
      ("《我和我的祖国》",29.64),("《烈火英雄》",19.76),("《中国机长》",28.46)]
sale.sort(key=lambda x:x[1],reverse=True)
print("电影名\t\t\t\t\t\t\t "+"票房")
for i in range(0,len(sale)):
    print("{0:{1}<20}".format(sale[i][0]," "), "{0: <10}".format(sale[i][1]))

运行结果:

 如果正常横向制表符的话就成了:

 先说下原因:

对于正常的对齐方式,使用的占位符都是半角,而中文是全角,那么最后虽然同样是格式化相同的宽度,产生的结果就会出现中文全角宽度和英文半角宽度不一样,就会出现对齐了,诶,又没完全对齐,就很气

解决方案:

另外给format格式化增加一个全角的空格(那不是两个半角空格堆在一起,两个半角空格堆一起会给你报错,那不是一个字符),至于全角空格怎么打出来,问度娘。

这是我同学发现的问题,首先表示对其发现表示感谢,对这个问题我表示闻所未闻,因此解决方法也是咕了一大通才总结出的,并且还十分单一,欢迎各位大佬评论区补充,某不胜感激

举报

相关推荐

0 条评论