变量类型判断
type 只能一次判断一种类型
isinstance 可以判断一种类型也可以判断多种类型
__author_ = "北门吹雪" __blog__ = "http://www.cnblogs.com/2bjiujiu/" __email__ = "[email protected]" def check_type(value): """使用isinstance判断变量单个类型""" # 判断变量单个类型,如果是则返回其类型对应的字符 if isinstance(value, int): return "int" elif isinstance(value, float): return "float" elif isinstance(value, bool): return "bool" elif isinstance(value, str): return "str" elif isinstance(value, list): return "list" elif isinstance(value, tuple): return "tuple" elif isinstance(value, set): return "set" elif isinstance(value, dict): return "dict" # 如果都不是则返回不知道 else: return "Unknow Type of {value}".format(value=value) def check_object(value): """使用instance同时判断多个类型""" # 判断变量是否是数字类型 if isinstance(value, (int, float, bool)): return "number" # 判断变量是否有序序列 elif isinstance(value, (str, list, tuple)): return "Ordered sequence" # 判断变量是否是无序序列 elif isinstance(value, (set, dict)): return "Disordered sequence" else: return "Unknow Object of {value}".format(value=value) def use_type(value): """type只能判断变量单个类型,也可以通过 or来进行折中解决""" if type(value) == int: return "int" elif type(value) == float: return "float" else: return "Unknow Type of {value}".format(value=value) if __name__ == '__main__': print(check_type(10)) print(check_type("10")) print(check_object((1, 3, 5))) print(check_object({2, 5, 6})) print(use_type(10)) print(use_type((1, 3)))