发布时间:2019-09-26 11:36:15编辑:auto阅读(2132)
近期在进行自然语言的处理,在使用len函数和isalpha函数时发现几个坑。现在略述一下,才疏学浅还请大牛批评指正。
len和isalpha函数对于str类型或者unicode类型的英文都有效,但是对于中文就要区别对待了!对于中文来说,在python2.7默认字符编码类型下,一个中文字符占两个(windows环境)或者三个(ubuntu系统)字符,所以此时len函数返回的是:真实字符数目*2或者3,而英文符号还是一个字符,所以len返回真实的英文数目。在unicode编码下,一个中文字符占一个unicode码,所以len返回真实字符数目,同样英文字符也是占一个unicode编码,返回真实字符数目。
isalpha函数是针对python2.7默认字符编码下的字符串设计的,所不适用于unicode编码,在unicode编码下会出错。具体请看下面的代码例子。
一.关于len的例子
上面是在ubuntu中运行的,下面是window中运行的。
二.关于isalpha的例子
三.str(),decode(),encode()的使用区别
我们知道数据类型有:string,int,float等,这些类型相互转换使用str()
string有很多字符编码,ascii,unicode,gbk,这些编码间相互转化使用decode和encode
上一篇: python 日志记录
下一篇: 用python处理MS Word
48443
47329
38207
35457
29913
26618
25592
20542
20227
18659
34°
38°
150°
102°
130°
235°
323°
327°
302°
389°