zoukankan      html  css  js  c++  java
  • Python学习笔记 04 数字

    1、数字简介

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

    (1)创建数值对象并赋值

    >>> anInt = 1
    >>> aLong = -9999999999999999L
    >>> aFloat = 3.1415926
    >>> aComplex = 1.23 + 4.5i
    SyntaxError: invalid syntax
    >>> aComplex = 4.33 + 1.5j

    (2)更新数字对象

    Python的对象模型与常规对象模型有些不同。更新实际上是生成了一个新的数值对象,并得到它的引用。对不可改变类型来说,你无法改变盒子的内容,但可以将指针指向一个新的盒子。

    (3)删除对象

    删除一个数值对象的引用,使用del语句即可。

    2、整型

    (1)布尔型

    (2)标准整型

    在大多数32位机器上,标准整型类型的取值范围是2的31次方减1,也就是-2147483648~2147483647。Python标准整型类型相当于C的(有符号)长整型。

    (3)长整型

    长整型类型是标准整型类型的赶集,在一个整型值后面加个L,表示这个整型是长整型。

    (4)整型和长整型的统一

    这两种整型类型正在逐渐统一为一种。

    >>> 9999 ** 8
    99920027994400699944002799920001L
    >>> 2 << 32
    8589934592L

    3、双精度浮点型

    Python中的浮点型类似C语言中的double类型,是双精度类型。每个浮点数占用8个字节,52比特标示底,11比特标示浮点数。剩下一个比特表示符号。

    4、复数

    虚数不能单独存在,它们总是和一个值为0.0的实数部分一起来构成一个复数。

    复数由实数部分和虚数部分构成。

    表示虚数的语法:real+imagj

    实数部分和虚数部分都是浮点型。

    虚数部分必须有后缀j或J

    复数对象拥有数据属性,分别为该复数的实部和虚部。复数还有conjugate方法,调用它可以返回该复数的共轭复数对象。

    5、操作符

    当两个整型相加时,+号表示整型加法,当两个浮点型相加时,+表示浮点型加法,依此类推。两个字符串连接起来,生成一个新的字符串。

    数据类型转换:

    如果有一个操作数是复数,另一个操作数被转换为复数;

    否则,如果有一个操作数是浮点型,另一个操作数被转换为浮点型;

    否则,如果有一个操作数是长整型,则另一个操作数被转换为长整型;

    否则,两者必然都是普通整型,无须类型转换。

    (1)算术运算符

    除法

    >>> 1/2     #传统除法
    0
    >>> 1.0/2.0 #浮点数除法
    0.5
    >>> from __future__ import division
    >>> 1/2 #真正除法 未来除法
    0.5
    >>> 1//2 #地板除法
    0
    >>> 1.0//2.0
    0.0
    >>> -1//2
    -1

    取余

    幂运算

    幂运算操作符比其右侧操作数的一元操作符优先级低,比其左侧操作数的一元操作符的优先级高。

    >>> 3 ** 2
    9
    >>> -3 ** 2
    -9

    位操作符

    Python整型支持标准位运算:取反(~)、按位与(&)、或(|)和异或(^),以及左移(<<)和右移(>>)

    负数会被当成正数的2进制补码处理。

    左移和右移N位等同于无溢出检查的2的N次幂运算:2**N

    对长整型来说,位操作符使用一种经修改的2进制补码形式,使得符号位可以无限向左扩展。

    取反(~)运算的优先级与数字单目操作符相同,优先级最高。

    6、内建函数与工厂函数

    (1)标准类型函数

    cmp()、str()、type()

    (2)数字类型函数

    int()、long()、float()、bool()和complex()用来将其他数值类型转换为相应的数值类型。

    (3)功能函数

    abs()、coerce()、divmod()、pow()和round()。

    abs():返回给定对象的绝对值
    coerce():返回一个类型转换完毕的两个数值元素的数组。

    >>> abs(-1)
    1
    >>> coerce(1.23-41L, 134L)
    (-39.77, 134.0)

    divmod()内建函数把除法和取余运算结合起来,返回一个包含商和余数的元组。

    >>> divmod(10, 3)
    (3, 1)
    >>> divmod(2.5, 10)
    (0.0, 2.5)

    pow()两个参数,乘方运算。三个参数,乘方后取余。

    >>> pow(2, 5)
    32
    >>> pow(2, 5, 10)
    2

    round()用于对浮点型进行四舍五入运算。

    >>> round(3)
    3.0
    >>> round(3.45)
    3.0

    int()直接截去小数部分。

    floor()得到最接近原数但小于原数的整型。

    round()得到最接近原数的整型。

    函数

    操作

    hex(num)

    将数字转换成十六进制数并以字符串形式返回。

    oct(num)

    将数字转换成八进制数并以字符串形式返回。

    chr(num)

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

    ord(num)

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

    unichr(num)

    接受Unicode码值,返回其对应的Unicode字符。所接受的码值范围依赖于Python构建于UCS-2还是UCS-4。

    7、其他数字类型

    (1)布尔值

    没有__nonzero__()方法的对象的默认值是True。

    任何为0的数字或空集在Python中的布尔值都是False。

    >>> bool(1)
    True
    >>> bool(True)
    True
    >>> bool(False)
    False
    >>> bool(0)
    False

    (2)十进制浮点型

    必须导入decimal模块以便使用Decimal类。

    >>> from decimal import Decimal

    8、相关模块

    模块

    介绍

    decimal

    十进制浮点运算类Decimal

    array

    高效数值数组(字符、整型、浮点型)

    math/cmath

    标准C库数学运算函数。常规数字运算在math,复数在cmath模块。

    operator

    数字操作符的函数实现。比如operator.sub(m, n)等价于m-n

    random

    多种伪随机数生成器

    核心模块:random

    randint()

    两个整数参数返回两者之间的随机整数

    randrange()

    它接受和range()函数一样的参数,随机返回
    range([start,]stop[,step])的结果一项。

    uniform()

    几乎和randint()一样,返回的是两者之间的一个浮点数(不包括范围上限)

    random()

    类似uniform()只不过下限恒等于0,上限恒等于1.0

    choice()

    随机返回给定序列的一个元素。

  • 相关阅读:
    webService基本概念、元素及简单编码实现
    云服务器、vps、虚拟主机的区别
    SOAP和WSDL的一些必要知识
    密码学基础
    oracle执行计划
    dubbo学习笔记:快速搭建
    dubbo和zookeeper的关系
    查看wifi密码
    自动保存图表
    自定义颜色
  • 原文地址:https://www.cnblogs.com/juventus/p/2390555.html
Copyright © 2011-2022 走看看