Python学习笔记:判断输入是否为数值
〇、判断数据框中非数值的取值
data.loc[data['score'].apply(lambda x: False if str(x).isdigit() else True), 'score'].values
一、isinstance
判断输入是否为整数或者浮点数,可利用 ininstance
函数对输入类型是否符合进行判断。
a = 10
b = 'gg'
isinstance(a, (int, float)) # True
isinstance(b, (int, float)) # False
二、replace和isdigit
利用 replace
替换掉字符串中的逗号(部分财务计数法),然后利用 isdigit
进行判断。
a = 10
a = '10,20,30'
str(a).replace(',', '').isdigit() # True
isdigit
方法检测字符串是否只由数字组成,只对0和正数有效。
str.isdigit()
三、isnumeric
isnumeric()
方法检测字符串是否由数字组成。包括:Unicode数字、全角数字(双字节)、罗马数字、汉字数字。
str.isnumeric()
a = 'hider1214'
a.isnumeric() # False
b = '12345'
b.isnumeric() # True
四、粗暴法
if -999999999 < input < 999999999
五、优化方法
isdigit()
方法只对正整数有效,负数及小数均返回不正确。
# 判断是否为数字
def is_number(s):
try: # 如果能运行则返回True
float(s)
return True
except ValueError: # 标准异常“传入无效的参数”
pass
try:
import unicodedata # 处理 ASCII 码的包
unicodedata.numeric(s) # 转换为浮点数
return True
except (TypeError, ValueError):
pass
return False
is_number(1) # True
is_number(1.0) # True
is_number(0) # True
is_number(-2) # True
is_number(-2.0) # True
is_number('aaa') # False
is_number('1e3') # True
is_number('四') # True
六、继续优化
针对多个汉字数字,通过遍历解决。
针对全角数字,进一步优化。
具体参考最后一个参考链接。
参考链接:python中判断一个数值的方法
参考链接:Python isdigit()方法
参考链接:Python 判断字符串是否为数字
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)