遇到了一个需求,有一对字符串数据需要使用python区分是否是纯英文,这些数据来源于不同国家的输入,区分的目的是为了大概统计英语的输入和其他语言输入的比例。
首先想到的是python提供的函数str.isalpha():
def judge_pure_english(keyword): return keyword.isalpha()
而这样的结果并非满足需求,isalpha()只能判断一个字符串是否是一个的单词,也就是没有空格和其他符号的纯字符即满足条件:
[113211]is english[.гугал плей->False] [113212]is english[노래->True] [113213]is english[亲戚->True] [113214]is english[ខ្មែ->False] [113215]is english[євротрек драйвер->False] [113216]is english[Sweater Weather->False] [113217]is english[Toca led->False] [113218]is english[электронды намаз->False] [113219]is english[шщенок->True] [113220]is english[графический планшет->False] [113221]is english[готы->True] [113222]is english[mindmars->True] [113223]is english[че. а->False] [113224]is english[гонки от полиции->False] [113225]is english[футлол шоу->False] [113226]is english[фспышка на звонок->False] [113227]is english[фрийдом->True] [113228]is english[фотошоп причесок->False] [113229]is english[TouchPal SkinPack->False] [113230]is english[голсовой яндекс->False]
而我们需要的是判断英文,即便有空格也不要紧,于是采用另一种办法:
def judge_pure_english(keyword): return all(ord(c) < 128 for c in keyword)
这样就彻底解决问题了,速度也不慢:
[113210]is english[003 rt->True] [113211]is english[.гугал плей->False] [113212]is english[노래->False] [113213]is english[亲戚->False] [113214]is english[ខ្មែ->False] [113215]is english[євротрек драйвер->False] [113216]is english[Sweater Weather->True] [113217]is english[Toca led->True] [113218]is english[электронды намаз->False] [113219]is english[шщенок->False] [113220]is english[графический планшет->False] [113221]is english[готы->False] [113222]is english[mindmars->True] [113223]is english[че. а->False] [113224]is english[гонки от полиции->False] [113225]is english[футлол шоу->False] [113226]is english[фспышка на звонок->False] [113227]is english[фрийдом->False] [113228]is english[фотошоп причесок->False] [113229]is english[TouchPal SkinPack->True] [113230]is english[голсовой яндекс->False]
得到了想要的结果,通过编码来判断,英文中是用的字母,数字,空格都被认为是英文,一旦出现超出这个范围的字符,就被认为是其他语言。
相关推荐
python判断文件和字符串编码类型可以用chardet工具包,可以识别大多数的编码类型。但是前几天在读取一个Windows记事本保存的txt文件时,GBK却被识别成了KOI8-R,无解。 然后就自己写了个简单的编码识别方法,代码...
计算字符串中所有数字的和,字符串中有数字和字母组合而成 如果出现连续数字,按照一个数操作 具体解释在代码行里: def sum_str(str1): ...= 57: #判断字符ascii码是否在数字ascii值范围内 n = n * 10 #n
'''找出字符串中的中英文、空格、数字、标点符号个数''' count_en = count_dg = count_sp = count_zh = count_pu = 0 for s in str: # 英文 if s in string.ascii_letters: count_en += 1 # 数字 elif s....
Chardet:通用字符编码检测器可检测ASCII,UTF-8,UTF-16(2个变体),UTF-32(4个变体)Big5,GB2312,EUC-TW,HZ-GB-2312,ISO-2022-CN(传统和简体中文Chardet:通用字符编码检测器可检测ASCII,UTF-8,UTF-16(2...
同时,要求函数能够处理任意长度的字符串作为输入,将字符串中的每个字符转换为其对应的ASCII码值,并将这些ASCII码值相加。此外,函数还需要能够处理列表和元组作为输入,将列表和元组中的所有元素转换为其对应的...
25.10 判断字符串是否为数字.png 25.11 判断奇数偶数.png 25.12 判断闰年.png 25.13 获取最大值函数.png 25.14 质数判断.png 25.15 输出指定范围内的素数.png 25.16 阶乘实例.png 25.17 九九乘法表.png ...
python不能像c++一样直接使用s – ‘0’直接实现个位数的字符串转整型,而是需要转换ascii码,ord(s) – ord(‘0’)来实现转换 3.判断是否超限 这也是手写int函数最容易忽略的问题,返回结果不能出int的限制,python...
本文的目标是写出一个函数 anagram(s, t) 去判断两个字符串是否是颠倒字母顺序构成的。下面话不多说了,来一起看看详细的介绍吧。 GoLang 实现 func solution(s , t string)bool{ if s == t { return true } ...
// $foo是字符串"1" (ASCII 49) $foo += 1; // $foo现在是整数(2) $foo = $foo + 1.3; // $foo是一个双精度数(3.3) $foo = 5 + "10 Little Piggies"; // $foo是一个整数(15) $foo = 5 + "10 Small Pigs"; // $foo是...
DTD文件也是一个ASCII的文本文件,后缀名为.dtd。例如:myfile.dtd。 为什么要用DTD文件呢?我的理解是它满足了网络共享和数据交互,使用DTD最大的好处在于DTD文件的共享。(就是上文DTD说明语句中的PUBLIC属性)。...