返回顶部
首页 > 资讯 > 后端开发 > Python >Python的print输出中文对齐问题
  • 279
分享到

Python的print输出中文对齐问题

中文Pythonprint 2023-01-31 01:01:28 279人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

问题描述: 在使用python的内建函数print作英文输出时,应用格式化输出可以对齐得很好: s1 = 'I am a long sentence.' s2 = 'I\'m short.' print '%-30s%-20s' %(s

问题描述:

在使用python的内建函数print作英文输出时,应用格式化输出可以对齐得很好:

s1 = 'I am a long sentence.'
s2 = 'I\'m short.'

print '%-30s%-20s' %(s1,s2) #'%-30s' 含义是 左对齐,且占用30个字符位 
print '%-30s%-20s' %(s2,s1)

输出:


注:

这里应用了最原始的cmd控制台,一些IDE自带的控制台(如Sublime text)可能会有不同的输出效果。


但当字符串包含中文时,却发现它对齐得不是很好:

# -*- coding:utf-8 -*-
#author: Song Bo, Eagle, ZJU
#email: sbo@zju.edu.cn
s1 = '我是一个长句子,是的很长的句子。'
s2 ='我是短句子'


print '%-30s%-20s' %(s1,s2)
print '%-30s%-20s' %(s2,s1)


首先是出现乱码:



cmd控制台并未正确解码utf-8编码,把s1和s2解码成unicode即可:

s1 = u'我是一个长句子,是的很长的句子。'
s2 =u'我是短句子'


print '%-30s%-20s' %(s1,s2)
print '%-30s%-20s' %(s2,s1)

输出



无法对齐。

原因是这样:在print中,函数为了实现字符串对齐,会在未达到指定长度的字符串末尾添上空格补齐。

但是,问题在这里,它会填入ASCII码为20的space,也就是半角空格。它的长度等于每个字母或数字的宽度,但远比汉字的宽度小,所以导致补足后的字符串长度仍然不同。


解决方案:

重写一个格式对齐函数,函数中判断字符串是否是中文字符串,有的话则添加全角空格补齐,否则添加半角空格补齐。

# -*- coding:utf-8 -*-
#author: Song Bo, Eagle, ZJU
#email: sbo@zju.edu.cn

def myAlign(string, length=0):
	if length == 0:
		return string
	slen = len(string)
	re = string
	if isinstance(string, str):
		placeholder = ' '
	else:
		placeholder = u' '
	while slen < length:
		re += placeholder
		slen += 1
	return re
s1 = u'我是一个长句子,是的很长的句子。'
s2 =u'我是短句子'


print myAlign(s1, 20) + myAlign(s2, 10)
print myAlign(s2, 20) + myAlign(s1, 10)

输出:



中英混排:




--结束END--

本文标题: Python的print输出中文对齐问题

本文链接: https://lsjlt.com/news/184330.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python的print输出中文对齐问题
    问题描述: 在使用Python的内建函数print作英文输出时,应用格式化输出可以对齐得很好: s1 = 'I am a long sentence.' s2 = 'I\'m short.' print '%-30s%-20s' %(s...
    99+
    2023-01-31
    中文 Python print
  • python print输出中文
    python print输出中文: 1、直接通过下面的语句输出: print "你好" 会出现乱码: C:\Python27\python.exe D:/pythonDemo/helloworld/hello.py   File "D:/...
    99+
    2023-01-31
    中文 python print
  • python中print格式化输出的问题
    前言 福宝们,下午好啊。改版后的第4.5章阅读量有点少呀,不知道是不是拖更了一天的缘故。呜呜呜,以后一定要做个不拖更的好熊,所以今天继续爆肝第五章:print格式化输出。在写第三章的...
    99+
    2024-04-02
  • python怎么对齐输出文字
    在 python 中,对齐输出文字的方式有四种:字符串格式化(使用 format() 方法)、f 字符串、str.ljust() 和 str.rjust() 方法、以及 textwrap...
    99+
    2024-05-14
    python
  • python怎么对齐输出
    如何在 python 中对齐输出?使用字符串格式化(左对齐、右对齐)使用 textwrap 模块删除缩进和空白字符使用 pprint 模块格式化数据结构,指定输出宽度使用 tabulat...
    99+
    2024-05-14
    python
  • 【Python】python对齐问题的总
    Python的对齐方式很重要,对齐方式决定了函数或者判断条件的作用域。 def print_circle(matrix,up_hang,up_lie,down_hang,down_lie): result=[] ...
    99+
    2023-01-31
    Python python
  • python怎么对齐输出数字
    在 python 中对齐输出数字可使用 format() 函数:左对齐:"{:align}{width}.{precision}f".format(value)居中对...
    99+
    2024-05-14
    python
  • Java输出如何让文字对齐
    在Java中,可以使用`System.out.printf`方法来实现文字对齐。该方法使用格式化字符串来定义输出的格式,并使用占位符...
    99+
    2023-09-27
    Java
  • python对齐输出的方法是什么
    Python提供了多种方法来对齐输出,具体取决于对齐的需求和输出的类型。 使用字符串的`ljust()`、`rjust()`和`c...
    99+
    2023-10-27
    python
  • python使用json.dumps输出中文问题
    目录使用json.dumps输出中文Python json.dumps()中文乱码总结使用json.dumps输出中文 在使用json.dumps时要注意一个问题 >>&...
    99+
    2023-02-08
    python使用json.dumps json.dumps输出中文 python json.dumps
  • python中pandas如何输出完整、对齐的表格
    这篇文章将为大家详细讲解有关python中pandas如何输出完整、对齐的表格,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用python计算数据相关性,但是发现计算出的表格中间好多省略号,而且也不对齐...
    99+
    2023-06-25
  • VBScript如何实现输出中的对齐
    这篇文章主要介绍了VBScript如何实现输出中的对齐,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。运行效果:代码(fOutput.vbs):strComputer = &q...
    99+
    2023-06-08
  • python中pandas输出完整、对齐的表格的方法
    今天使用python计算数据相关性,但是发现计算出的表格中间好多省略号,而且也不对齐。 这也太难看了。 于是在程序里加了三行: pd.set_option('display.ma...
    99+
    2024-04-02
  • Pandas含中文表格对齐输出的几种情况
    目录1.初始情况2.pandas显示设置3.Sublime字体设置4.其他pandas显示设置总结1.初始情况 文本编辑器 :Sublime Test3 因为表格有中文的关...
    99+
    2023-05-18
    pandas输出表格列右对齐 pandas 对齐 pandas数据对齐
  • python中print输出形式有哪些
    这篇文章将为大家详细讲解有关python中print输出形式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、普通输出,Print函数接受零或多个参数,并将单个空格作为默认分隔符显示结果。为输出Py...
    99+
    2023-06-20
  • Python print函数:如何将对象打印输出
    目录描述语法使用示例打印对象指定分隔符打印到文件设定结尾字符串print与__repr__描述 print函数是Python的内置函数,它会将对象的__repr__特殊函数返回的字符...
    99+
    2024-04-02
  • 实时获取Python的print输出流
    我的应用场景是:使用shell执行python文件,并且通过调用的返回值获取python的标准输出流。 shell程序如下: cmd='python '$1' '$2' '$3' '$5' '$4 RESULT=eval $cm...
    99+
    2023-01-31
    实时 Python print
  • python中文编码&json中文输出问
    python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符串处理的原理,附带解决 json 文件输出时,显示中文而非 unicode 问题。首先简要介绍字符串编...
    99+
    2023-01-30
    中文 python json
  • 菜菜小问题——python中print函
    直接面对——引号,就是为了保证打印出来的东东符合预期 如:print("小菜菜") 结果是: 、================1===========================  ==================2=====...
    99+
    2023-01-30
    菜菜小 python print
  • Python的输入和输出问题详解
    输出用print()在括号中加上字符串,就可以向屏幕上输出指定的文字。比如输出'hello, world',用代码实现如下: >>> print('hello, world') print()函数也可以接受多个字符...
    99+
    2023-01-30
    详解 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作