赞
踩
英文和数字通常是半角字符,在输出和显示时只占用1个字符位置,而中文是全角字符,一个字符占用2个字符位。所以在屏幕上显示时宽度会不一致。格式化输出额空格只占用一个字符位置,所以在当字符串内有中文时,会无法对齐。
所以一种比较直接的方法就是把所有半角字符转为全角字符输出:
def aligns(string,length=20): difference = length - len(string) # 计算限定长度为20时需要补齐多少个空格 if difference == 0: # 若差值为0则不需要补 return string elif difference < 0: print('错误:限定的对齐长度小于字符串长度!') return None new_string = '' space = ' ' for i in string: codes = ord(i) # 将字符转为ASCII或UNICODE编码 if codes <= 126: # 若是半角字符 new_string = new_string + chr(codes+65248) # 则转为全角 else: new_string = new_string + i # 若是全角,则不转换 return new_string + space*(difference) # 返回补齐空格后的字符串
调用方法:
aligns(要对齐的字符串,占用长度)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。