zoukankan      html  css  js  c++  java
  • 数字

    简介:

      数字提供了标量贮存和直接访问。它是不可更改类型,也就是说变更数字的值会生成新的对象。 

      Python 支持多种数字类型:整型、长整型、布尔型、双精度浮点型、十进制浮点型和复数。 

    创建数字对象:

      相当于给变量赋值

    aInt = 1

    更新数字对象:

      相当于给数字对象重新赋值

    aInt += 1

    删除数字对象

    del aInt

    一、整型

    【1】布尔型

    ture、false

    【2】标准整数类型

      Python 的标准整数类型是最通用的数字类型。在大多数 32 位机器上,标准整数类型的取 值范围是-231 到 231-1,也就是-2,147,483,648 到 2,147,483,647。如果在 64 位机器上使 用 64 位编译器编译 Python,那么在这个系统上的整数将是 64 位 

    0101 84 -237 0x80 017 -680 -0X92

      如果八进制整数以数字“0”开始, 十六进制整数则以 “0x” 或“0X” 开始。 

    【3】长整型

      在一个整数值后面加个 L(大写或小写都可以),表示这个整数是 长整数。这个整数可以是十进制,八进制, 或十六进制。

    16384L -0x4E8L 017L-2147483648l 052144364L 
    299792458l 0xDECADEDEADBEEFBADFEEDDEAL -5432101234L

    二、双精度浮点数

      浮点数值通常都有一个小数点和一个可选的后缀 e(大写或小写,表示科学计数法)。在 e 和指数之间可以用正(+)或负(-)表示指数的正负(正数的话可以省略符号)。 

    0.0 -777.   1.6      -5.555567119   4.3e25   9.384e-23

    -2.172818   float(12)  1.000000001    3.1416   4.2E-10

    -90. 6.022e2  96e3 * 1.0

    三、复数 

    • 虚数不能单独存在,它们总是和一个值为0.0的实数部分一起来构成一个复数。
    • 复数由实数部分和虚数部分构成
    • 表示虚数的语法: real+imagj
    • 实数部分和虚数部分都是浮点数
    • 虚数部分必须有后缀j或J。   
    64.375+1j             4.23-8.5j         0.23-8.55j 
    1.23e-045+6.7e+089j      6.23+1.5j       -1.23-875J  
    0+1j           9.80665-8.31441J -.0224+0j

    【1】复数的内建属性

    属性

    描述

    num.real

    复数的实部

    num.imag

    复数的虚步

    num.conjugate() 

    复数的共轭复数
    a = 1-2.4j
    print(a.real)
    #1.0
    print(a.imag)
    #-2.4
    print(a.conjugate())
    #(1+2.4j)

    五、运算符

    【1】混合模式运算符

      当两个整数相加时, + 号表示整数加法, 当两个浮点数相加时, + 表示浮点数加法。字符串 A + 字符 串 B 并不表示加法操作, 它表示的是把这两个字符串连接起来, 生成一个新的字符串。 

    1.0+2.0
    #3.0
    'a'+'b'
    #ab

       注意:

      虽然我们不能让一个数字和一个字符串相加, 但 Python 确实支持不同的数字类型相加。 当一个整数和一个浮点数相加时, 系统会决定使用整数加法还是浮点数加法(实际上并不存在 混合运算)。

      首先,如果两个操作数都是同一种数据类型,没有必要进行类型转换。仅当两个操作数类 型不一致时, Python 才会去检查一个操作数是否可以转换为另一类型的操作数。如果可以, 转换它并返回转换结果。由于某些转换是不可能的,比如果将一个复数转换为非复数类型, 将 一个浮点数转换为整数等等,因此转换过程必须遵守几个规则。 

      要将一个整数转换为浮点数,只要在整数后面加个 .0 就可以了。 要将一个非复数转换为 复数,则只需要要加上一个 “0j” 的虚数部分。这些类型转换的基本原则是: 整数转换为浮 点数, 非复数转换为复数。 

    • 如果有一个操作数是复数, 另一个操作数被转换为复数。
    • 否则,如果有一个操作数是浮点数, 另一个操作数被转换为浮点数。
    • 否则, 如果有一个操作数是长整数,则另一个操作数被转换为长整数。
    • 否则,两者必然都是普通整数,无须类型转换。

     【2】算数运算符

      以a=10 ,b=20为例进行计算

    运算符描述实例
    + 两个对象相加 a + b 输出结果 30
    - 得到负数或是一个数减去另一个数 a - b 输出结果 -10
    * 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
    / x除以y b / a 输出结果 2
    // 取整除 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
    % 取余 返回除法的余数 b % a 输出结果 0
    ** 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000

       

    【3】赋值运算符

    运算符描述实例
    = 赋值运算符 把=号右边的结果给左边的变量 num=1+2*3 结果num的值为7

    【4】符合赋值运算符   

    运算符描述实例
    += 加法赋值运算符 c += a 等效于 c = c + a
    -= 减法赋值运算符 c -= a 等效于 c = c - a
    *= 乘法赋值运算符 c *= a 等效于 c = c * a
    /= 除法赋值运算符 c /= a 等效于 c = c / a
    %= 取模赋值运算符 c %= a 等效于 c = c % a
    **= 幂赋值运算符 c **= a 等效于 c = c ** a
    //= 取整除赋值运算符 c //= a 等效于 c = c // a

        

    【5】位运算符(只用于整数)

      Python 整数支持标准位运算:取反(~),按位 与(&), 或(|) 及 异或(^) 及左移(<<)和右 移(>>)。Python 这样处理位运算:

    • 负数会被当成正数的2进制补码处理。
    • 左移和右移 N 位等同于无溢出检查的 2 的 N 次幂运算: 2**N。
    • 对长整数来说, 位运算符使用一种经修改的 2 进制补码形式,使得符号位可以无限的向左扩展。

      取反(~)运算的优先级与数字单目运算符相同, 是所有位操作符中优先级最高的一个。 左移和右移运算的优先级次之,但低于加减法运算。与, 或, 异或 运算优先级最低。所有位运 算符按优先级高低列在表 。 

    位运算符 功能
    num1 << num2 
    Num1 左移 num2 位
    num1 >> num2
    Num1 右移 num2 位
    num1 & num2 num1 与 num2 按位 与
    num1 ^ num2  num1 异或 num2
    num1 | num2 num1 与 num2 按位 或 
       
    30 & 45
    #12
    30 | 45
    #63
    45 & 60
    #44
    45 | 60
    # 61
    ~30
    #-31
    60 >> 2
    #15
    30 ^ 45
    # 51

     六、内建函数和工厂函数

    【1】标准类型函数

    函数 描述

    cmp(a,b)

    (python3已经废除)

    比较a,b的大小

    如果a>b,返回1

    如果a=b,返回0

    如果a<b,返回-1

    str() 将数字转换成字符串
    type()

    返回数字对象的类型。 

    cmp(2,1)
    #1
    cmp(1,1)
    #0
    cmp(1,2)
    #-1
    str(1)
    #'1'
    type(1)
    #<class 'int'>

    【2】数字类型函数

      数值工厂函数总结 

    类(工厂函数) 描述
    bool(obj)

    返回obj对象的布尔值

    int(obj) 

    返回一个字符串或数值对象的整数表示

    long(obj)

    返回一个字符或数据对象的长整数表示 

    float(obj) 

    返回一个字符串或数据对象的浮点数表示

    complex(str) 
    complex(real,imag=0.0)  

    返回一个字符串的复数表示,或者根据给定的实数(及一个可选

    的虚数部分)生成一个复数对象。

    bool(1)
    #True
    bool(0)
    #False
    int(1)
    #1
    float(1)
    #1.0
    complex(1+2j)
    #(1+2j)

      数值运算内建函数总结

    函数 功能

    abs(num)

    返回 num 的绝对值

    coerce(num1, num2) 

    将num1和num2转换为同一类型,然后以一个元组的形式返回。

    divmod(num1, num2) 

    除法-取余运算的结合。返回一个元组(num1/num2,num1 %num2)。对浮点数和复数的商进行下舍入(复数仅取实数部分的商)

    pow(num1, num2) 

    取 num1 的 num2次方

    round(flt, ndig=0) 

    接受一个浮点数 flt 并对其四舍五入,保存 ndig位小数。若不提供ndig 参数,则默认小数点后0位 

      备注:round()仅用于浮点数。(整数也可以, 不过并没有什么实际意义) 

    •  abs()返回给定参数的绝对值。如果参数是一个复数,那么就返回math.sqrt(num.real2 +num.imag2)   
    abs(-1)
    #1
    abs(10.)
    #10.0
    abs(3-4j)
    #5
    • coerce(num1, num2) ,将num1和num2转换为同一类型,然后以一个元组的形式返回。python3已经废除
    coerce(1,2)
    #(1, 2)
    coerce(1.3, 134L)
    #(1.3, 134.0)
    coerce(1, 134L)
    #(1L, 134L)
    coerce(1j, 134L)
    #(1j, (134+0j))
    coerce(1.23-41j, 134L)
    #((1.23-41j), (134+0j))

    divmod()内建函数把除法和取余运算结合起来, 返回一个包含商和余数的元组。对整数来说,它的返回值就是地板除和取余操作的结果。对浮点数来说, 返回的商部分是math.floor(num1/num2),对复数来说, 商部分是 ath.floor((num1/num2).real)。 

    divmod(10,3)
    #(3, 1)
    divmod(3,10)
    #(0, 3)
    divmod(10,2.5)
    #(4.0, 0.0)
    divmod(2.5,10)
    #(0.0, 2.5)
    divmod(2+1j, 0.5-1j)
    #(0j, (2+1j))
    • 函数 pow()进行指数运算
    pow(5,2)
    #25
    • 内建函数 round()用于对浮点数进行四舍五入运算。它有一个可选的小数位数参数。如果不提供小数位参数, 它返回与第一个参数最接近的整数(但仍然是浮点类型)。第二个参数告诉 round 函数将结果精确到小数点后指定位数。 
    round(1)
    #1
    round(1.49999)
    #1
    round(1.49999,1)
    #1.5

     【3】仅用于整数的函数 

    函数 功能
    hex(num) 将数字转换成十六进制数并以字符串形式返回 
     oct(num)  将数字转换成八进制数并以字符串形式返回
    chr(num)

    将ASCII值的数字转换成ASCII字符,范围只能是0 <= num <= 255。

    ord(chr)  接受一个 ASCII 或 Unicode 字符(长度为1的字符串),返回相应的ASCII 或Unicode 值。 

      进制转换函数 

      Python还提供了两个内建函数来返回字符串表示的8进制和16进制整数。它们分别是 oct() 和 hex()。它们都接受一个整数(任意进制的)对象,并返回一个对应值的字符串对象。
      
    >>>hex(255)
        '0xff'
    >> hex(23094823l)
        '0x1606627L'
    >>> hex(65535*2)
        '0x1fffe'
    >>> oct(255)
        '0377'
    >>> oct(23094823l)
        '0130063047L'
    >>> oct(65535*2)
        '0377776'

      ASCII 转换函数 

      函数 chr()接受一个单字节整数值,返回一个字符串,其值为对应的字符。函数 ord()则相反,它接受一个字符,返回其对应的整数值。 

    >>> ord('a')
     97
    >>> ord('A')
    65
    >>> ord('0')
    48
    >>> chr(97)
    'a'
    >>> chr(65L)
    'A'
    >>> chr(48)
    '0'
     

  • 相关阅读:
    宿主机无法访问CentOS7上Jenkins服务的解决办法
    415. Add Strings
    367. Valid Perfect Square
    326. Power of Three
    258. Add Digits
    231. Power of Two
    204. Count Primes
    202. Happy Number
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/Jiangchuanwei/p/8477440.html
Copyright © 2011-2022 走看看