本文链接:https://www.cnblogs.com/zyuanlbj/p/11905636.html
内置类型
- 数值类型:整型int,浮点型float,复数(complex) 3+6j
- str:字符串
- bool:布尔值[True,False]
- None:空值,表示变量没有确定的值
- list:列表
- tuple:元组
- dict:字典
- set:集合
- bytes类型
bytes类型
如果希望将一个字符串转换成 bytes 对象,有如下三种方式:
- 如果字符串内容都是 ASCII 字符,则可以通过直接在字符串之前添加 b 来构建字节串值。
- 调用 bytes() 函数(其实是 bytes 的构造方法)将字符串按指定字符集转换成字节串,如果不指定字符集,默认使用 UTF-8 字符集。
- 调用字符串本身的 encode() 方法将字符串按指定字符集转换成字节串,如果不指定字符集,默认使用 UTF-8 字符集。
自定义类型
- class:类
类型判断
我们可以用type和isinstance来测试和判断数据类型。
type用法
type(obj)
功能:返回obj的数据类型
参数:obj是你要测试变量或数值
示例:
age = 10
name = 'hello'
print(type(name),type(age)) # <class 'str'> <class 'int'>
# 判断变量是否是指定类型
if type(age) is int:
print('是')
else:
print('否')
isinstance用法
isinstance(obj,typename)
功能:判断obj是否是指定类型,是返回True,否返回False
参数: objobj是你要判断的变量或数值
typename是指定数据类型,可以是int,float,str等。也可是一个类型的元组,例如:(int,float)
示例:
age = 10
name = 'hello'
print(isinstance(age,int))
print(isinstance(name,(str,int)) #只要name是str或int的一种就返回True
if isinstance(age, int):
print('是')
else:
print('否')
class A:
pass
class B(A):
pass
objA = A()
objB = B()
#输出否
if type(objB) is A:
print('是')
else:
print('否')
print(isinstance(objB,A)) #True
type和isinstance的区别
type判断基本类型是没问题的,但无法判断子类对象是父类的一种。
isinstance可以判断子类对象是父类的一种。
结论:优先使用isinstance。