python对齐函数,python怎么对齐

python对齐输出使三个数字空格

因为宽度不够所以用空格来填充。函数为了实现字符串对齐,会在未达到指定长度的字符串末尾添上空格补齐。但是,问题在这里,它会填入ASCII码为20的space,也就是半角空格。它的长度等于每个字母或数字的宽度,但远比汉字的宽度小,所以导致补足后的字符串长度仍然不同。解决方案:重写一个格式对齐函数,函数中判断字符串是否是中文字符串,有的话则添加全角空格补齐,否则添加半角空格补齐。

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的灵川网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

Python中字符串对齐方法介绍

这篇文章主要介绍了Python中字符串对齐方法介绍,本文介绍Python字符串内置方法ljust、rjust、center的用法,需要的朋友可以参考下

目的

实现字符串的左对齐,右对齐,居中对齐。

方法

字符串内置了以下方法:其中width是指包含字符串S在内的宽度,fillchar默认是空格,也可以指定填充字符

代码如下:

string.ljust(s,

width[,

fillchar])

string.rjust(s,

width[,

fillchar])

string.center(s,

width[,

fillchar])

代码如下:

In

[6]:

a='Hello!'

In

[7]:

print

a.ljust(10,'+')

Hello!++++

In

[8]:

print

a.rjust(10,'+')

++++Hello!

In

[9]:

print

a.center(10,'+')

++Hello!++

python。如图,为啥第一个print的\t不起作用,无法对齐下面的,该怎样做?

这个看方法,这类问题基本没关注过,但是可以自己写一个对齐函数,对于同一列的数据把长度规定死就是几个字符的长度,这个长度必须涵盖最大的字符,小于这个长度的在两边自动填补空格,这样每列都像表格一样包裹在一个范围内自己就对齐了,直接用\b有一定的局限性,一旦四个字符补充不了就会偏左,有英文字符或者其他情况就会偏右,不好控制,每个字符再打打印前处理一下就OK,示例如下:

[Python]中英文混合字符串的对齐

002-PG002-Python002 中英文混合字符串的对齐

最近几天在研究tkinter的颜色名称,准备写个能展示所有支持的颜色名的小程序。

做着做着发现一个问题,tkinter的listbox不支持多列的list,我那个表有6列,自己写一个class又好烦,于是就想到干脆加点竖线或者制表符排个版对齐一下,看着像表就行了。

于是又遇到一个问题,里面的中文名是我自己翻译的,有一些是中文+数字的组合,Python是对于汉字和英文都算作1个字符的,len('一二三abc')输出是6,而汉字和英文的宽度其实不一样,所以用format()和ljust()等函数都无法对齐,制表符在终端里是可以对齐的,但是tkinter迷之不认制表符,填进去完全没用。

然后去tkinter的listbox里测试下

于是自己写了个函数,给定一个字符串和需要的长度,计算一下汉字和字母的个数然后补空格。如下:

随便写个程序测试下

理论上讲应该是正确的,研究了下应该是中英文混排的时候,实际中文字宽不等于2倍英文字宽造成的,包括用全角空格和半角空格补充字符串混排也是对不齐的。

于是我就去找了个中英文混合等宽字体,微软雅黑与Consolas的混合:YaHei Consolas Hybrid,改上去。

顺便说一句,还有个【更纱黑体(Sarasa Gothic)】也不错,但英文太窄了看不习惯,想要的可以去GitHub找到。

完美,问题解决。

python中代码如何对齐

对于基本的字符串对齐操作,可以使用字符串的ljust(), rjust()和 center()方法。比如:

text = 'Hello World'

text.ljust(20)

'Hello World '

text.rjust(20)

' Hello World'

text.center(20)

' Hello World '

所有这些方法都能接受一个可选的填充字符。比如:

text.rjust(20,'=')

'=========Hello World'

text.center(20,'*')

'****Hello World*****'

函数 format()同样可以用来很容易的对齐字符串。 你要做的就是使用 或者 ^ 字符后面紧跟一个指定的宽度。比如:

format(text, '20')

' Hello World'

format(text, '20')

'Hello World '

format(text, '^20')

' Hello World '

如果你想指定一个非空格的填充字符,将它写到对齐字符的前面即可:

format(text, '=20s')

'=========Hello World'

format(text, '*^20s')

'****Hello World*****'

当格式化多个值的时候,这些格式代码也可以被用在 format()方法中。比如:

'{:10s} {:10s}'.format('Hello', 'World')

' Hello World'

format()函数的一个好处是它不仅适用于字符串。它可以用来格式化任何值,使得它非常的通用。 比如,你可以用它来格式化数字:

x = 1.2345

format(x, '10')

' 1.2345'

format(x, '^10.2f')

' 1.23 '

讨论

在老的代码中,你经常会看到被用来格式化文本的 % 操作符。比如:

'%-20s' % text

'Hello World '

'%20s' % text

' Hello World'

但是,在新版本代码中,你应该优先选择 format()函数或者方法。 format()要比 % 操作符的功能更为强大。 并且 format() 也比使用 ljust(), rjust()或 center()方法更通用, 因为它可以用来格式化任意对象,而不仅仅是字符串。

希望我的回答对你有帮助


网站栏目:python对齐函数,python怎么对齐
分享网址:http://myzitong.com/article/hooesh.html