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

最近一直在写一套基于 pythonsanic web 框架库的 restFul 接口的底层框架。由于我是初学,挑战这个任务基本上是属于不自量力型的。但目前我核心构架已经完全写出来了,我会在近期整理好相关资料后,写一系列的文章分享给大家。

这个挑战的过程很简单,因为大家知道我只是一个前端工程师。但是挑战的过程充满乐趣,今天,我就将我遇到的一些小的知识点,做一个汇总,也方便以后自己查找和复习。

判断数据类型

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

type(__SOME_PARAME_) == str

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

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

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

isinstance(1, int)
isinstance([1,2], list)

执行结果如下:

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

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

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

我的最终代码是:

def isInt(num):
    try:
        num = int(str(num))
        return isinstance(num, int)
    except:
        return False

运行结果如下:

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

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

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

本文由 FungLeo 原创,允许转载,但转载必须保留首发链接。

猜你喜欢

转载自blog.csdn.net/FungLeo/article/details/81390700
今日推荐