[Python]中英文混合字符串的对齐

作者&投稿:兆诞 (若有异议请与网页底部的电邮联系)
~

002-PG002-Python002 中英文混合字符串的对齐

最近几天在研究tkinter的颜色名称,准备写个能展示所有支持的颜色名的小程序。
做着做着发现一个问题,tkinter的listbox不支持多列的list,我那个表有6列,自己写一个class又好烦,于是就想到干脆加点竖线或者制表符排个版对齐一下,看着像表就行了。
于是又遇到一个问题,里面的中文名是我自己翻译的,有一些是中文+数字的组合,Python是对于汉字和英文都算作1个字符的,len('一二三abc')输出是6,而汉字和英文的宽度其实不一样,所以用format()和ljust()等函数都无法对齐,制表符在终端里是可以对齐的,但是tkinter迷之不认制表符,填进去完全没用。

然后去tkinter的listbox里测试下

于是自己写了个函数,给定一个字符串和需要的长度,计算一下汉字和字母的个数然后补空格。如下:

随便写个程序测试下

理论上讲应该是正确的,研究了下应该是中英文混排的时候,实际中文字宽不等于2倍英文字宽造成的,包括用全角空格和半角空格补充字符串混排也是对不齐的。
于是我就去找了个中英文混合等宽字体,微软雅黑与Consolas的混合:YaHei Consolas Hybrid,改上去。
顺便说一句,还有个【更纱黑体(Sarasa Gothic)】也不错,但英文太窄了看不习惯,想要的可以去GitHub找到。

完美,问题解决。




有没有办法把一份中英文的word里面中文提取出来怎么办把word中英文提取...
是的,有几种方法可以从中英文混合的Word文档中提取中文:1. 使用Python编程语言:可以使用Python的库如jieba进行分词,然后通过判断每个词的语言类型来提取中文。2. 使用在线工具:有一些在线工具如Online Chinese Word Segmentation可以帮你完成这个任务。你只需要将你的文本复制粘贴到工具中,然后选择你需要...

python 为什么用read可以显示中文,但用readlines就不行呢?
首先你要明白read 与readlines的区别。。。read简单点讲就是把你的文件内容全部一下都读取出来。而readlines 是把文件的所有行信息都读出来。通常我们使用readlines的时候 都会跟上 for x in X.readlines 这样x是每一个行的信息。readlines是个集合,在python2.X 版本中所有的集合里的中文会显示成 u...

python写入文件write中的冒号是中文冒号吗
python写入文件write中的冒号不是中文冒号。根据查询相关信息得知,python写入文件write中冒因为使用变量不需要切换中英文输入法,因此都使用的是英文键盘的冒号。

刚配置好apache+moinmoin+Python 但是页面的显示有问题:中英文编码的...
五,配置 moinmoin 环境 这是最后一步,对 Wiki 实例目录下的 wikiconfig.py 文件进行一些修改。由于这个文件默认是 iso-8859-1 编码的,若在该文件中输入中文,保存时会出现乱码,所以在修改之前,自己想办法把文件转换为 utf-8 编码的,可以使用 iconv 进行编码转换。对该文件几处必要的修改处如下...

python 字符串分割split()函数中中英文逗号分割
在我这里没有问题啊,能够正确地分割。注意最好不要用内置函数名称作为变量名。

python如何除掉后的 及中英文全角半角空格(正文内容前面)
不太确定理解了你的问题。如果替换的话用正规表达式就可以简单的实现。import rea = u"   abcdef xyz"print [re.sub(ur"(?<=)[  ]{2}","", a)]#输出: abcdef xyz

哪位大神来看看我的PYTHON到底错在哪?怎么改?
要学会自己看报错,这才是关键。错误提示已经很明显了 错误提示的中英文对比

使用Python 地图绘制工具 -- folium 全攻略
高德地图的 中英文地图、卫星影像图、街道图与常规图 中英文地图 纯英文地图 卫星影像图 街道图 常规图 反正我觉得这个蛮好的,用起来简单 多种风格地图,即拿即用 彩色版 暖色版 灰色版 蓝黑版 英文版 中国行政区划边界 水系专题 街道网图 暖色街道网图 需要注册一个key 天地图影像 天地图影像注记...

关于Python 的经典入门书籍有哪些
我接触的如下:《Python学习手册》,死贵的书,但是看完了似乎没什么卵用。我一直拿来跟学习Perl的时候做对比,学习Perl的时候一个星期就能够熟练写代码。这本书将近1000页,让我学了一个多月。看完了几本还处于Hello world、字符串的级别。《简明Python教程》:网络版本,Free。大致了解了一下Python...

python中什么是序列,列表,元组,字符串,索引,区别是什么?
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。比如,列出班里所有同学的名字,就可以用一个list表示:>>> classmates = ['Michael', 'Bob', 'Tracy']>>> classmates ['Michael', 'Bob', 'Tracy']另一种有序列表叫元组:tuple。tuple和list非常...

七台河市13172173831: 求助python截取字符串中中文的方法 -
金宙牛黄: 1 2>>> re.findall(r'[^0-9a-zA-Z]+','测试awk测试123测试11') ['\xb2\xe2\xca\xd4', '\xb2\xe2\xca\xd4', '\xb2\xe2\xca\xd4']

七台河市13172173831: 用python怎么在一个中英文混合句子里把中文提取 -
金宙牛黄: Python re正则匹配中文,其实非常简单,把中文的unicode字符串转换成utf-8格式就可以了,然后可以在re中随意调用 unicode中中文的编码为/u4e00-/u9fa5,因此正则表达式u”[\u4e00-\u9fa5]+”可以表示一个或者多个中文字符>>> import re>>>...

七台河市13172173831: python 读取包含中文字符+外文字符的长度 -
金宙牛黄: #coding=utf-8 test_str = u'提问123' print len(test_str) # 输出5或者#coding=utf-8 test_str = '提问123' test_str_unicode = test_str.decode('utf-8') print len(test_str_unicode) # 输出5求这种长度可以转化成求解码(unicode)的长度;报UnicodeDecodeError,应该是直接用了test_str.encode('utf-8'),这是编码.

七台河市13172173831: 在python中怎么组合字符串 -
金宙牛黄: 代码如下:BigString=small1+small2+small3+...+smalln

七台河市13172173831: Python用正则表达式匹配含有中文的字符串,匹配不到? -
金宙牛黄: 代码如下: #coding=utf-8import re s = u'<li><a class="nav-first" href="/">首 页 </a></li>' r = re.compile(u'<li><a\sclass="[^"]*"\shref="[^"]">(.*?)(?=</a></li>)') ss = r.findall(s) for str in ss:print str运行结果:

七台河市13172173831: 请教python匹配中文字符的方法 -
金宙牛黄: 在Python的string前面加上'r', 是为了告诉编译器这个string是个raw string,不要转意backslash '\' . 例如,\n 在raw string中,是两个字符,\和n, 而不会转意为换行符.由于正则表达式和 \ 会有冲突,因此,当一个字符串使用了正则表达式...

七台河市13172173831: 刚学习Python,练手之作游戏,我想实现,只能输入汉字,这一处卡住了,求助该怎么加程序? -
金宙牛黄: 转成Int型,做异常处理,如果转int失败,则不是整数,需要重新输入,示例如下:print '奇偶数判定程序'a = raw_input("请输入一个数字:")try: x=int(a) if x%2 == 1: print '奇数' elif x%2 == 0: print '偶数'except Exception as e: print '输入的不是整数,请重新输入!'

七台河市13172173831: 如何获取中英文混合字符串长度 -
金宙牛黄: function strLength($str,$charset='utf-8'){ if($charset=='utf-8') $str = iconv('utf-8','gb2312',$str); $num = strlen($str); $cnNum = 0; for($i=0;$i<$num;$i++){ if(ord(substr($str,$i+1,1))>127){ $cnNum++; $i++; } } $enNum = $num-($cnNum*2); $number = ($...

七台河市13172173831: python 判断字符串中是否含有英文 -
金宙牛黄: 可以使用正则表达式来判断,要使用到re模块 代码如下:>>> import re>>> s = 'safasdfas'>>> s2 = '15130351535'>>> rt = re.findall('[a-zA-Z]+', s)>>> len(rt)1>>> rt ['safasdfas']>>> rt = re.findall('[a-zA-Z]+', s2)>>> rt []>>> len(rt)0>>> 如果返回有内容,则说明包含有英文,如上例中s,如果为空列表则说明不包含,如s2

七台河市13172173831: python怎么判断一个字符串含有中文 -
金宙牛黄: #! /usr/bin/python # -*- coding: utf-8 -*- import re zhPattern = re.compile(u'[\u4e00-\u9fa5]+') #一个小应用,判断一段文本中是否包含简体中: contents=u'一个小应用,判断一段文本中是否包含简体中:' match = zhPattern.search(contents)if match:print u'有中文:%s' % (match.group(0),) else:print u'没有包含中文'

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网