python的数据类型有:数字(int)、浮点(float)、字符串(str),列表(list)、元组(tuple)、字典(dict)、集合(set)
一般通过以下方法进行判断:
1、isinstance(参数1,参数2)
描述:该函数用来判断一个变量(参数1)是否是已知的变量类型(参数2) 类似于type()
参数1:变量
参数2:可以是直接或间接类名、基本类型或者由它们组成的元组。
返回值: 如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#判断变量类型的函数 def typeof(variate): type = None if isinstance (variate, int ): type = "int" elif isinstance (variate, str ): type = "str" elif isinstance (variate, float ): type = "float" elif isinstance (variate, list ): type = "list" elif isinstance (variate, tuple ): type = "tuple" elif isinstance (variate, dict ): type = "dict" elif isinstance (variate, set ): type = "set" return type # 返回变量类型 def getType(variate): arr = { "int" : "整数" , "float" : "浮点" , "str" : "字符串" , "list" : "列表" , "tuple" : "元组" , "dict" : "字典" , "set" : "集合" } vartype = typeof(variate) if not (vartype in arr): return "未知类型" return arr[vartype] #判断变量是否为整数 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))) #判断变量是否为字典 dictory = { "key1" : "value1" , "key2" : "value2" } print ( "{0}是{1}" . format (dictory,getType(dictory))) #判断变量是否为集合 apple = { "apple1" , "apple2" } 46 print ( "{0}是{1}" . format (apple,getType(apple))) |
返回:
2、通过与已知类型的常量进行比较
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#判断变量类型的函数 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" : "集合" } vartype = typeof(variate) if not (vartype in arr): return "未知类型" return arr[vartype] #判断变量是否为整数 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))) #判断变量是否为字典 dictory = { "key1" : "value1" , "key2" : "value2" } print ( "{0}是{1}" . format (dictory,getType(dictory))) #判断变量是否为集合 apple = { "apple1" , "apple2" } print ( "{0}是{1}" . format (apple,getType(apple))) |
返回:
补充:
isinstance() 与 type() 区别:
- type() 不会认为子类是一种父类类型,不考虑继承关系。
- isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
以上就是如何在python中判断变量的类型的详细内容,更多关于Python判断变量类型的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/xmnote/p/9334743.html