# 是否全是中文defis_Chinese(word):for ch in word:if'\u4e00'<= ch <='\u9fff':returnTruereturnFalse# 是否包含中文defis_include_Chinese(text):ifsum([1ifu'\u4e00'<= i <=u'\u9fff'else0for i in text])>0:returnTrueelse:returnFalse# 是否全是英文import re
defiter_all_english(strs):"""循环判断"""import string
for i in strs:if i notin string.ascii_lowercase + string.ascii_uppercase:returnFalsereturnTruedefre_all_english(s):"""正则判断"""
p = re.compile(r"^[a-zA-Z]+$")if re.match(p, s):returnTrueelse:returnFalseprint(iter_all_english("hello"))print(iter_all_english("hello你好"))print(re_all_english("apple"))print(re_all_english("你好"))# 是否包含英文import re
defis_contains_english(str):
my_re = re.compile(r'[A-Za-z]', re.S)
res = re.findall(my_re,str)iflen(res):returnTrueelse:returnFalseprint(is_contains_english("hello"))print(is_contains_english("hello你好"))print(is_contains_english("123456"))print(is_contains_english("你好"))
将字符串中所有连续重复的字符只保留一个
# 例如:aaacdefbbb -> acdefbdefremoveRepeat(s):
lst =list(s)
n =len(lst)if n <=1:return s
not_repeat_list =[]# 只保留相邻不重复的文本for i inrange(n -1):if lst[i]!= lst[i +1]:
not_repeat_list.append(lst[i])
not_repeat_list.append(lst[-1])
res =''.join(not_repeat_list)return res
不定长连续重复字符串判断
# 思路: 对字符串进行分词去重操作,看不重复词的数量以及去重后新词组和原词组的比值# 例: import jieba
import re
t0 ="九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读九书网提供分享阅读"defsetTextCount(text):# 去除英文及标点符号
subtext = re.sub(r"[a-zA-Z0-9%$#.(),?。]","", text)# 将文本进行jieba分词
old =list(jieba.cut_for_search(subtext))# 去重分词后的文本
new =list(set(old))# 根据剩余词数量判断iflen(new)<=10:returnFalse# 根据剩余词语数量占原词语数量的百分比判断eliflen(new)/len(old)<0.1:returnFalseelse:returnTrue
字符串中中文所占的百分比
defpercentage_Chineses(text):
percen =sum([1ifu'\u4e00'<= i <=u'\u9fff'else0for i in text])/len(text)return percen
import string
import random
length =4
al = string.ascii_letters
di = string.digits
print(al, di)
li = random.sample(al + di, length)print(li)
判断整数、小数、百分数
defis_number(s):if s.count(".")==1and s[-1]!="%":# 小数的判断if s[0]=="-":
s = s[1:]if s[0]==".":returnFalse
s = s.replace(".","")for i in s:if i notin"0123456789":returnFalseelse:# 这个else与for对应的returnTrueelif s.count(".")==0and s[-1]!="%":# 整数的判断if s[0]=="-":
s = s[1:]for i in s:if i notin"0123456789":returnFalseelse:returnTrueelif s[-1]=="%":# 百分数判断returnTrueelse:returnFalseprint(is_number("1334345345"))print(is_number("1.12344565"))print(is_number("-14344343"))print(is_number("-1.123456"))print(is_number("10%"))print(is_number("nihao"))print(is_number("你好"))