python(二)内置类型

最重要的内置类型有数字、序列、映射、类、实例和异常。

真值检测

if和while都可以做真值检测,默认情况下,如果一个对象的__bool__()返回False或者__len__()返回0,那么该对象为假;否则都为真。

因此内置类型为假的情况有:

  • 常量:None和False
  • 任何值为0的数字类型:0, 0.0, 0j, Decimal(0), Fraction(0, 1)
  • 空序列和集合:'', (), [], {}, set(), range(0)

布尔运算——and, or, not

优先级最高的是not,其次是and,最次是or

它们三个操作符都是在前后两个值选择一个返回!!!

  • x or y: if x is false, then y, else x(找第一个真)
  • x and y: if x is false, then x, else y(找第一个假)
  • not x: if x is false, then True, else False

布尔运算符的优先级比其他非布尔运算符的优先级都要低,也就是说not a == b等价于not (a == b)

比较运算符

八个:<, <=, >, >=, ==, !=, is, is not

数字类型——int, float, complex

数字类型有三个不同的类型:整数、浮点数、复数。

零散的一些信息:

  1. 布尔值是整数的子类型
  2. 整数的精度没有限制,既可以无限长
  3. 浮点数一般通过C语言中的double来实现,可以通过sys.float_info()来查看
  4. 复数包含实部和虚部,二者都是一个浮点数,以复数z为例,实部和虚部分别为z.read和z.imag
  5. 标准库还包含了额外的数字类型,fractions表示分数,decimal表示用户自定义精度的浮点数
  6. +inf/inf表示无穷大,-inf表示无穷小,都是浮点类型

复数除外,所有数字类型有以下运算符:

+, -, *, /, //, %, abs(), int(), float(), complex(), .conjugate(), divmod(), pow(), **

所有numbers.Real类型(整数和浮点数)支持:

  • math.trunc(x),截断为整数
  • round(x[, n])
  • math.floor(x)
  • math.ceil(x)

整数类型的二元运算符

  • x | y: 或运算
  • x ^ y: 异或,不同为1
  • x & y: 与运算
  • x << n: 左移
  • x >> n: 右移
  • ~x: 反转
  • int.bit_length(): 表示整数所需的二进制位数,包括符号和首部的零
  • int.to_bytes()/class method int.from_bytes()
  • float.as_integer_ratio()/float.is_integer()/float.hex()/class float.fromhex()

注意:

  1. 负数不允许左移右移
  2. 左移相当于乘2,右移相当于除以2

迭代类型

posted @ 2021-02-13 18:30  YoungF  阅读(187)  评论(0编辑  收藏  举报