python这种输出无法对齐的问题是什么原因, 怎么可以解决
Python 中的这种排列基于字符间距,前一个字符中的字符数会影响下一个字符的排列。您可以使用 string.format 进行格式化。
python如何在同一行输出
输出一行非常简单,然后您可以列出一系列镜头并首先在同一行上对它们进行计数。[Python]中英文混合字符串的对齐
002-PG002-Python002中英文混合字符串的对齐
这几天一直在研究Tkinter的颜色名称,准备写一个小程序,支持所有可以显示名称中的颜色。
在这样做的过程中,我发现了一个问题。
Tkinter 的列表框不支持多列列表。
我的表格有6列,单独写一个类很烦人,所以我想到只添加一些垂直线或制表符来对齐它,使其看起来像一个时钟。
所以我面临另一个问题。
里面的中文名字是我翻译的。
其中有一些是中文+数字的组合。
Python将中文和英文都算作1个字符。
是6,而且汉字和英文的宽度其实是不一样的,所以用format()、ljust()之类的函数来对齐是无法在终端中对齐的,但是Tkinter不识别制表符。
完全没有必要讨论这个。
然后在Tkinter的Listbox中测试一下
于是我写了一个函数,给定一个字符串和需要的长度,统计汉字和字母的个数,然后填空。
于是:
就写个程序测试一下
理论上应该是正确的,经过研究,应该是中英文混合时,实际的汉字宽度并不是这样。
等于2倍。
错位是由英文字符宽度引起的,其中包括使用全角空格和半角空格来补充字符串混合。
所以我是一个去找了中英文混合等宽字体,是微软雅黑和Consolas的混合体:YaHeiConsolasHybrid,替换掉了。
对了,还有【Sarsa Gothic】也不错,但是英文很窄,很难读,可以去GitHub上找。
完美,问题解决了。