2 数据类型

1 概述

        Python3 中有六个标准的数据类型:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)
  • Set(集合)

        六个标准数据类型中:

  • 不可变数据类型有:Number、String、Tuple
  • 可变数据类型有:List、Dictionary、Set

2 类型判断

        内置的 type() 函数可以用来查询对象的数据类型。此外,还可以用 isinstance() 函数来判断。

print(type(111))               # <class 'int'>
print(type('111'))             # <class 'str'>
print(type([1, 1, 1]))         # <class 'list'>
print(type((1, 1, 1)))         # <class 'tuple'>
print(type({'key1': 111}))     # <class 'dict'>
print(type(set((1, 1, 1))))    # <class 'set'>

print(isinstance(111, int))               # True
print(isinstance('111', str))             # True
print(isinstance([1, 1, 1], list))        # True
print(isinstance((1, 1, 1), tuple))       # True
print(isinstance({'key1': 111}, dict))    # True
print(isinstance(set((1, 1, 1)), set))    # True

        type() 和 instance() 的区别在于:

  • type() 不会认为子类是父类类型
  • isinstance() 则会认为子类是父类类型
        在 Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加,True=1, False=0。但可以使用 is 关键字来判断这两者。
简介
isinstance(object, classinfo, /)        如果参数 object 是参数 classinfo 的一个实例,或者是其(直接、间接或虚拟)子类,则返回 True。如果 object 不是给定类型的一个对象,则函数返回 False。如果 classinfo 是类型对象的元组(或递归地,其它此类元组)或多个类型的联合类型,则如果 object 是这些类型的任何一个实例,返回 True。如果 classinfo 不是一个类型或类型的元组和其它元组,则会产生一个 TypeError 异常。如果一个非法类型在之前检查成功,则可能不会产生 TypeError。

type(object, /)

type(name, bases, dict, /, **kwds)

        传入一个参数时,返回 object 的类型。返回值是一个 type 对象,通常与 object.__class__ 所返回的对象相同。推荐使用 isinstance() 内置函数来检查对象的类型,因为它会考虑子类的情况。

        传入三个参数时,返回一个新的 type 对象。这在本质上是 class 语句的一种动态形式,name 字符串即类名,并会成为 __name__ 属性;bases 元组包含基类并会成为 __bases__ 属性;如果为空则会添加所有类的终极基类 object。dict 字面包含类主题的属性和方法定义;它在成为 __dict__ 属性之前可能会被拷贝或包装。

3 逻辑值检测

        任何对象都可以进行逻辑值的检测,以便在 if 或 while 作为条件或是作为布尔运算的操作数来使用。

        一个对象在默认情况下均被视为真值,除非当该对象被调用时其所属类定义了 __bool__() 方法且返回 False,或是定义了 __len__() 方法且返回零。下面基本完整地列出了被视为假值的内置对象:

  • 被定义为假值的常量:None 和 False。
  • 任何数值类型的零:0、0.0、0j、Decimal(0)、Fraction(0, 1)。
  • 空的序列和多项集:''、()、[]、{}、set()、range(0)。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值