python中判断变量的类型


python中判断变量的类型

本文转载自:https://www.cnblogs.com/xmnote/p/9334743.html

本人只是为了方便记录查看,进行转载的;需要查看详细文章可查看原链接。

python的数据类型有:数字(int)、浮点(float)、字符串(str),列表(list)、元组(tuple)、字典(dict)、集合(set)

一般通过以下方法进行判断:

1、isinstance(参数1,参数2)

描述:该函数用来判断一个变量(参数1)是否是已知的变量类型(参数2) 类似于type()

参数1:变量

参数2:可以是直接或间接类名、基本类型或者由它们组成的元组。

返回值: 如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False

例子:

def typeof(variate):
    cur_type = None
    if isinstance(variate, int):
        cur_type = "int"
    elif isinstance(variate, str):
        cur_type = "str"
    elif isinstance(variate, float):
        cur_type = "float"
    elif isinstance(variate, list):
        cur_type = "list"
    elif isinstance(variate, tuple):
        cur_type = "tuple"
    elif isinstance(variate, dict):
        cur_type = "dict"
    elif isinstance(variate, set):
        cur_type = "set"

    return cur_type


# 返回变量类型
def getType(variate):
    arr = {"int": "整数", "float": "浮点", "str": "字符串", "list": "列表", "tuple": "元组", "dict": "字典", "set": "集合"}
    var_type = typeof(variate)
    if not (var_type in arr):
        return "未知类型"
    return arr[var_type]

    # 判断变量是否为整数


money = 120
print("{0}是{1}".format(money, getType(money)))
# 判断变量是否为字符串
money = "120"
print("{0}是{1}".format(money, getType(money)))
money = 12.3
print("{0}是{1}".format(money, getType(money)))
# 判断变量是否为列表
students = ['studentA']
print("{0}是{1}".format(students, getType(students)))
# 判断变量是否为元组
students = ('studentA', 'studentB')
print("{0}是{1}".format(students, getType(students)))
# 判断变量是否为字典
cur_dict = {"key1": "value1", "key2": "value2"}
print("{0}是{1}".format(cur_dict, getType(cur_dict)))
# 判断变量是否为集合
apple = {"apple1", "apple2"}
print("{0}是{1}".format(apple, getType(apple)))

返回:

img

2、通过与已知类型的常量进行比较

例子:

# 判断变量类型的函数
def typeof(variate):
    type1 = ''
    if type(variate) == type(1):
        type1 = "int"
    elif type(variate) == type("str"):
        type1 = "str"
    elif type(variate) == type(12.3):
        type1 = "float"

    elif type(variate) == type([1]):
        type1 = "list"
    elif type(variate) == type(()):
        type1 = "tuple"
    elif type(variate) == type({"key1": "123"}):
        type1 = "dict"
    elif type(variate) == type({"key1"}):
        type1 = "set"
    return type1


# 返回变量类型
def getType(variate):
    arr = {"int": "整数", "float": "浮点", "str": "字符串", "list": "列表", "tuple": "元组", "dict": "字典", "set": "集合"}
    cur_type = typeof(variate)
    if not (cur_type in arr):
        return "未知类型"
    return arr[cur_type]


# 判断变量是否为整数
money = 120
print("{0}是{1}".format(money, getType(money)))
# 判断变量是否为字符串
money = "120"
print("{0}是{1}".format(money, getType(money)))
money = 12.3
print("{0}是{1}".format(money, getType(money)))
# 判断变量是否为列表
students = ['studentA']
print("{0}是{1}".format(students, getType(students)))
# 判断变量是否为元组
students = ('studentA', 'studentB')
print("{0}是{1}".format(students, getType(students)))
# 判断变量是否为字典
cur_dict = {"key1": "value1", "key2": "value2"}
print("{0}是{1}".format(cur_dict, getType(cur_dict)))
# 判断变量是否为集合
apple = {"apple1", "apple2"}
print("{0}是{1}".format(apple, getType(apple)))

返回:

img

补充: 

isinstance() 与 type() 区别:

    • type() 不会认为子类是一种父类类型,不考虑继承关系。
    • isinstance() 会认为子类是一种父类类型,考虑继承关系。

如果要判断两个类型是否相同推荐使用 isinstance()。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM