前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 常用代码段汇总(一) 判断数据类型 判断是否为整数(包括负数)

python 常用代码段汇总(一) 判断数据类型 判断是否为整数(包括负数)

作者头像
FungLeo
发布2019-05-27 08:56:27
4K0
发布2019-05-27 08:56:27
举报

判断数据类型

对于入参,我们经常需要判断数据类型,一般,我们的用法是 type() 方法。如下代码演示:

代码语言:javascript
复制
type(__SOME_PARAME_) == str

但是我查阅相关的资料,更加推荐使用 isinstance 函数来进行判断,理由如下:

isinstance() 与 type() 区别: 1. type() 不会认为子类是一种父类类型,不考虑继承关系。 2. isinstance() 会认为子类是一种父类类型,考虑继承关系。 如果要判断两个类型是否相同推荐使用 isinstance()。

我是不太明白这个意思,只是学会了它的用法如下:

代码语言:javascript
复制
isinstance(1, int)
isinstance([1,2], list)

执行结果如下:

可以用来判断任何已知类型。

判断“字符串或数字”是否是整数(包括负数)

首先,判断一个字符串是否是正整数,我们会想到 str.isdigit() 方法。但如果输入的数字,则会报错,因为数字并不支持该方法。此外,它也不支持负数。很显然,这并不符合我的要求。

我的最终代码是:

代码语言:javascript
复制
def isInt(num):
    try:
        num = int(str(num))
        return isinstance(num, int)
    except:
        return False

运行结果如下:

判断“字符串或数字”是否是整数(包括负数)
判断“字符串或数字”是否是整数(包括负数)

无论是数字还是数字字符串,都能被 int 执行,并且包含负数。但是,浮点型数字能被 int 正确执行,而浮点型数字字符串缺不行。因此,我先将输入参数转化成字符串型,就可以避免这个小坑了。

唯一的问题是,如果是其他内容,则会出现报错。因此,这里使用了 try 方法来执行这段代码,报错直接返回 False

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年08月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 判断数据类型
  • 判断“字符串或数字”是否是整数(包括负数)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档