python 字符宽度_Python计算字符宽度的方法

widths = [

(126, 1), (159, 0), (687, 1), (710, 0), (711, 1),

(727, 0), (733, 1), (879, 0), (1154, 1), (1161, 0),

(4347, 1), (4447, 2), (7467, 1), (7521, 0), (8369, 1),

(8426, 0), (9000, 1), (9002, 2), (11021, 1), (12350, 2),

(12351, 1), (12438, 2), (12442, 0), (19893, 2), (19967, 1),

(55203, 2), (63743, 1), (64106, 2), (65039, 1), (65059, 0),

(65131, 2), (65279, 1), (65376, 2), (65500, 1), (65510, 2),

(120831, 1), (262141, 2), (1114109, 1),

]

def get_width( o ):

"""Return the screen column width for unicode ordinal o."""

global widths

if o == 0xe or o == 0xf:

return 0

for num, wid in widths:

if o <= num:

return wid

return 1

如代码所示,首先根据unicode的官方EastAsianWidth 文档整理出字符宽度的范围表,然后使用unicode代码查表。使用之前的例子测试:

>>> get_width(ord(u'a'))

1

>>> get_width(ord(u'你'))

2

>>> get_width(ord(u'”'))

1

完全准确,而且在实际应用中的表现也比较好,是一个理想的解决方案,更多技巧请查阅urwid的old_str_util.py 源码。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值