目录
Python输入数据类型判断正确与否的函数
内置函数 isinstance() 函数来判断
python 判断该字符中有多少个字符,数字,空格,特殊字符
描述
语法
举例
1. 字符串中只包含字母
结果返回
2. 字符串包含数字、符号和字母
返回值
3.判断个数
python+pytesseract 中文识别
python 字符串去除中文
python | 字符串去除(中文、英文、数字、标点符号)
去除标点符号
去除英文标点符号
去除中文标点符号
去除中文
去除英文
去除数字
去除空格
re.sub()方法
1、strip()方法
2、lstrip()方法
3、rstrip()方法
4、replace()方法
5: join()方法+split()方法
对于python输入数据类型判断正确与否的函数大致有三类:
(1)type(),它的作用直接可以判断出数据的类型
(2)isinstance(),它可以判断任何一个数据与相应的数据类型是否一致,比较常用。
(3)对于任何一个程序,需要输入特定的数据类型,这个时候就需要在程序的开头,输入一定的判断格式语句,防止程序运行出错,而对于不同的数据类型和要求,有以下几种判断函数,比较常见:
如果s为python任意输入数据,则有以下几个判断输入是否有误的语句比较常用:
s.isalnum() #所有字符都是数字或者字母,为真返回 True,否则返回 False。
s.isalpha() #所有字符都是字母,为真返回 True,否则返回 False。
s.isdigit() #所有字符都是数字,为真返回 True,否则返回 False。
s.islower() #所有字符都是小写,为真返回 True,否则返回 False。
s.isupper() #所有字符都是大写,为真返回 True,否则返回 False。
s.istitle() #所有单词都是首字母大写,为真返回 True,否则返回 False。
例如:
>>> s = 'I LOVE FISHC'
>>> s.isupper()
>>> True
举例1
>>>arg=1234567
>>>isinstance(arg, int) #输出True
True
>>>isinstance(arg, str) #输出False
False
>>>isinstance(arg, string) #报错
Traceback (most recent call last):
File "", line 1, in
NameError: name 'string' is not defined
举例2
>>>a = 666
>>>isinstance(a,int)
True
>>>isinstance(a,str)
False
>>>isinstance(a,(str,int,list)) # 是元组中的其中一个,则返回 True
True
isalpha函数检测字符串中是否只包含字母。
如果全部是字母组成的字符串,则返回True,否则返回False。
isalpha()函数没有任何参数。
str.isalpha()
test = 'sdgsxxad'
print(test.isalpha())
True
test = 'sdgsxxad'
test2 = '3rfs3dfhw'
test3 = 'I love python'
test4 = 'nova-scheduler'
print(test.isalpha())
print(test2.isalpha())
print(test3.isalpha())
print(test4.isalpha())
True
False
False
False
str=input('请输入一个字符串:')
zf=0 #字符
sz=0 #数字
kg=0 #空格
ts=0 #特殊字符
for strs in str:
if strs.isalpha():
zf+=1
elif strs.isdigit():
sz+=1
elif strs ==' ':
kg+=1
else:
ts+=1
print("该字符串中的字符有:",zf)
print("该字符串中的数字有:",sz)
print("该字符串中的空格有:",kg)
print("该字符串中的特殊字符有:",ts)
#coding = utf -8
from PIL import Image
import pytesseract
im = Image.open("2.png")
text = pytesseract.image_to_string((im), lang='chi_sim')
print (text)
去除中文
import re
p1=' #要去中文的内容 '
linee=re.sub('[\u4e00-\u9fa5]', '', p1)
print(linee)
去除标点
simple_punctuation = '[’!"#$%&\'()*+,-/:;<=>?@[\\]^_`{|}~,。,]'
line = re.sub(simple_punctuation, '', linee)
去除数字
re.sub("[0-9]", " ", line)
去除各个字母、数字、符号的方法,主要就是re的运用,
#去除用
re.sub()
反过来的提取用
re.findall()
标点符号包括中英文两种,要分开处理
string.punctuation包含所有英文标点符号
import string
string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
text = '''Don't worry, be happy!''' # 'Don\'t worry, be happy'
punctuation_string = string.punctuation
for i in punctuation_string:
text = text.replace(i, '')
print(text)
import re
re.sub('[{}]'.format(punctuation_string),"",text)
调用zhon包的zhon.hanzi.punctuation函数即可得到中文的标点符号集合。
from zhon.hanzi import punctuation
punctuation
'"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、\u3000、〃〈〉《》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏﹑﹔·!?。。'
text = '生活就像【】,如果##'
punctuation_str = punctuation
for i in punctuation_str:
text = text.replace(i, '')
text
import re
re.sub('[{}]'.format(punctuation),"",text)
import re
text = '生活就像【】,如果##'
temp = re.sub('[\u4e00-\u9fa5]','',text)
temp
from zhon.hanzi import characters
import re
text = '生活就像【】,如果##'
temp = re.sub('[{}]'.format(characters),'',text)
temp
import re
text="aksjn ekljfk # ! len223"
temp = re.sub('[a-zA-Z]','',text)
temp
' # ! 223'
其实对于\d \s \w这些,小写是数字\空格\数字字母,大写即是非数字\非空格\非数字字母,可以合理运用~
import re
text="哈aksjn ekljfk # ! len223"
temp = re.sub('[\d]','',text) # [0-9]
temp
'哈aksjn ekljfk # ! len'
import re
text="aksjn ekljfk # ! len223"
temp = re.sub('[\s]','',text) #temp = text.strip()
temp
'aksjn ekljfk # ! len223'
去除字符串开头或者结尾的空格
str = " Hello world "
str.strip()
输出:
"Hello world"
去除字符串开头的空格
str = " Hello world "
str.lstrip()
输出:
'Hello world '
去除字符串结尾的空格
str = " Hello world "
str.lstrip()
输出:
' Hello world'
可以去除全部空格
# replace主要用于字符串的替换replace(old, new, count)
str = " Hello world "
str.replace(" ","")
输出:
"Helloworld"
可以去除全部空格
# join为字符字符串合成传入一个字符串列表,split用于字符串分割可以按规则进行分割
a = " a b c "
b = a.split() # 字符串按空格分割成列表
b ['a', 'b', 'c']
c = "".join(b) # 使用一个空字符串合成列表内容生成新的字符串
c 'abc'
# 快捷用法
a = " a b c "
"".join(a.split())
'abc'