zoukankan      html  css  js  c++  java
  • 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

    迭代类型

  • 相关阅读:
    SPOJ SAMER08A
    SPOJ TRAFFICN
    CS Academy Set Subtraction
    CS Academy Bad Triplet
    CF Round 432 C. Five Dimensional Points
    CF Round 432 B. Arpa and an exam about geometry
    SPOJ INVCNT
    CS Academy Palindromic Tree
    身体训练
    简单瞎搞题
  • 原文地址:https://www.cnblogs.com/YoungF/p/14400795.html
Copyright © 2011-2022 走看看