在python中,有时候会出现中英文混合输出的情形,但是由于中文默认是全角格式(一个中文字符占用两个字符宽度),这会对python原生的print
函数带来一些障碍。尤其是用户用print
对齐输出的时候,这种差异会导致文本无法准确对齐。为了解决这种问题,这里提出一种方法。
python的print
函数,在进行对齐处理的时候,首先需要判断字符串的长度。这个就是通常的len()
函数。python在计算字符串长度的时候,任何字符都只会被算作长度1,无论全角还是半角,所以会有下面的情况:
> len("一二三")
3
> len("123")
3
但是对于对于全角字符,打印宽度是两个字节,半角字符是单个字节,譬如下例:
这里很明显的看到,同样的长度为3的字符,全角字符是半角字符一倍的打印长度。
这种差距,会影响到print
的对齐打印,譬如下例:
这个是一个右对齐的示例,print函数首先计算了打印对象的长度len()
,得到了这个打印对象的长度为3(此处忽略全角和半角),所以print
会从右对齐的20节点开始排布,意即