(一)直接判断输入数据类型:
Type()
举例:
结果为:
(二)判断字符串类型:
此处引用:https://www.cnblogs.com/ListenWind/p/4624476.html
在str为字符串的情况下:
str.isalnum() 所有字符都是数字或者字母(不区分大小写)
str.isalpha() 所有字符都是字母(不区分大小写)
str.isdigit() 所有字符都是数字
str.islower() 所有字符都是小写
str.isupper() 所有字符都是大写
str.istitle() 所有单词都是首字母大写,像标题
str.isspace() 所有字符都是空白字符、\t、\n、\r
返回的结果将为 TRUE OR 报错
举例:
判断字符str是否是浮点类型:(用正则示例)
正则表达式解释:
^[-+]?[0-9]+\.[0-9]+$
^表示以这个字符开头,也就是以[-+]开头,[-+]表示字符-或者+之一,
?表示0个或1个,也就是说符号是可选的。
同理[0-9]表示0到9的一个数字,+表示1个或多个,也就是整数部分。
\.表示的是小数点,\是转义字符因为.是特殊符号(匹配任意单个除\r\n之外的字符),
所以需要转义。
小数部分同理,$表示字符串以此结尾。
(三)isdigital,ismumerical,isdecimal的区别
此处引用他人,忘记了来处,在此备注
测试代码如下:
num = ['1', '1', 'Ⅷ', '一', b'50']
decimal = [i for i in num[:4] if i.isdecimal()] # 仅单字节、双字节数字,byte数字报错
digital = [i for i in num if i.isdigit()] # 非汉子
numeric = [i for i in num[:4] if i.isnumeric()] # byte数字报错
print(decimal,digital,numeric, sep='\n')
运行结果如下:
['1', '1']
['1', '1', b'50']
['1', '1', 'Ⅷ', '一']
结论如下:
1. isdigital() --- 除汉子外
2. isnumeric() --- 除byte数字
3. isdecimal() --- 仅单、双字节数字