python中英文混合字符串对齐

 

python字符串对齐可以使用字符串的 ljust() , rjust() 和 center() 方法,

ljust() 字符串靠左,需要填写两个参数,第一个参数为长度,指的是字符串需要格式化输出的总长度,第二个参数为填充的字符

当填充遇到中英文混合字符时,由于中文占用的字节长度不等于2个英文的特性,填充完毕仍然无法对齐,此时我们可以选择使用中英文混合填充,计算出英文和中文的字符个数,先将字符串的英文补齐,比如所以字符串中,英文字符最大个数为3,此时字符串占用的英文字符长度一致,然后再使用ljust 填充中文字符

英文字符我们可以使用英文空格,中文空格为 chr(12288)ce

def is_Chinese(ch):
    if '\u4e00' <= ch <= '\u9fff':
        return True
    return False

def algin(title_key,max_english):
    chinese_count = 0
    english_count = 0
    for j in str(title_key):
        if is_Chinese(j):
            chinese_count = chinese_count + 1
        else:
            english_count = english_count + 1

    temp = max_english-english_count
    while temp > 0:
        title_key = title_key + ' '
        temp = temp-1
    title_key = title_key.ljust(7, chr(12288))
    print(title_key + '-')
    return title_key


if __name__ == '__main__':
    algin("a一二三",3)
    algin("aa一二三", 3)
    algin("aaa一二三", 3)
    algin("a一二三aa", 3)

测试结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值