zoukankan      html  css  js  c++  java
  • python3数据类型--数字

    数字

    Python数字数据类型用于存储数值。数字数据类型是不允许改变的,所以如果改变数字数据类型的值,将重新分配内存空间。

    以下实例在变量赋值时Number对象被创建:

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    
    var1 = 1
    var2 = 10

    可以使用del语句删除单个或多个对象的引用。

    del var1, var2

    Python3支持三种不同的数值类型:

    • 整型(int)--通常被称为是整型或整数,可以是正整数或负整数,不带小数点。Python3整型是没有限制大小的,可以当做long类型使用,  但实际上由于机器内存的有限,我们使用的整数是不可能无限大的。
    • 浮点型(float)--浮点型数字由整数部分和小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
    • 复数(complex)--复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。

    整型的4种表现形式

    • 2进制:以'0b'开头。例如:'0b11011'表示10进制的27
    • 8进制:以'0o'开头。例如:'0o33'表示10进制的27
    • 10进制:正常显示
    • 16进制:以'0x'开头。例如:'0x1b'表示10进制的27

    4种进制的转换:

    通过python中的内置函数(bin、oct、int、hex)来实现转换

    #10进制转2进制
    >>> bin(27)
    '0b11011'
    #10进制转8进制
    >>> oct(27)
    '0o33'
    #10进制转16进制
    >>> hex(27)
    '0x1b'
    
    #2进制转10进制
    >>> int('0b11011',2)
    27
    #2进制转8进制
    >>> oct(0b11011)
    '0o33'
    #2进制转16进制
    >>> hex(0b11011)
    '0x1b'
    
    #8进制转10进制
    >>> int('0o33',8)
    27
    #8进制转2进制
    >>> bin(0o33)
    '0b11011'
    #8进制转16进制
    >>> hex(0o33)
    '0x1b'
    
    #16进制转10进制
    >>> int('0x1b',16)
    27
    #16进制转2进制
    >>> bin(0x1b)
    '0b11011'
    #16进制转8进制
    >>> oct(0x1b)
    '0o33'

    注:

    1、在python2中整型是有限制大小的

    在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

    在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

    超过这个范围的整型就是long型

    2、Python有个特别的机制,它会在解释器启动的时候事先分配好一些缓冲区,这些缓冲区部分是固定好取值,例如整数[-5,256]的内存地址是固定的(这里的固定指这一次程序启动之后,这些数字在这个程序中的内存地址就不变了,但是启动新的python程序,两次的内存地址不一样)。有的缓冲区就可以重复利用。这样的机制就使得不需要python频繁的调用内存malloc和free。

    数字运算

    请参考本人写的另外一篇博客:Python运算符

    数字类型转换

    • int(x):将x转换为一个整数
    • float(x):将x转换为一个浮点数
    • complex(x):将x转换成一个复数,实数部分为x,虚数部分为0
    • complex(x,y):将x、y转换成一个复数,实数部分为x,虚数部分为y。x和y是数值表达式。

    数学常量

    常量 描述
    pi 数学常量pi(圆周率,一般以∏来表示)
    e 数学常量e,e即自然常数

    实例:

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    
    import math
    print(math.pi)
    print(math.e)
    print('π:  %.30f' % math.pi)
    print('e:   %.30f' % math.e)

    实例结果:

    3.141592653589793
    2.718281828459045
    π:  3.141592653589793115997963468544
    e:   2.718281828459045090795598298428

    数学函数

    函数 描述 实例
    abs(x) 返回数字的绝对值 abs(-10)返回10
    ceil(x) 会生成按顺序排在这个输入值之后的最小整数 math.ceil(6.6)返回7、math.ceil(-6.6)返回-6
    trunc(x) 截断x小数点后的数字,只留下构成x整数部分的有效数字 math.trunc(6.6)返回6、math.trunc(-6.6)返回-6
    floor(x) 将x转换为不大于它的最大整数 math.floor(6.6)返回6、math.floor(-6.6)返回-7
    exp(x) 返回e(自然常数)的x次幂(e**x) math.exp(1)返回2.718281828459045
    fabs(x) 返回x的绝对值 math.fabs(-10)返回10、math.fabs(6.6)返回6.6
    log(x) log(x)计算以e为底数的x的自然对数 math.log(10)返回2.302585092994046
    log(x,y) log(x,y)计算以y为底数的x的自然对数 math.log(27,3)返回3.0
    log10(x) 返回以10为底数的x的自然对数,对等于log(x,10) math.log10(1000)返回3.0
    modf(x) 返回一个tuple,其中包含x的小数和整数部分 math.modf(6.32)返回 (0.3200000000000003, 6.0)
    pow(x,y) 返回x**y的值 math.pow(3,4)返回81.0
    sqrt(x) 计算x的平方根,数字不能使复数 math.sqrt(9)返回3.0
    max(x1,x2,…) 返回给定参数的最大值 max(3,2,1,4,5,6)返回6
    min(x1,x2,…) 返回给定参数的最小值 min(3,2,1,4,5,6)返回1
    round(x[,n]) 返回浮点数x的四舍五入值,如果给出n值,则代表舍入到小数点后的位数
    round(3.1415926)返回3
    round(3.1415926,3)返回3.142

    随机数函数

    随机数可以用于数学,游戏、安全领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性

    函数 描述 实例
    choice(seq) 返回seq中的随机项,seq可以是列表、元组或字符串
    random.choice(range(10))
    randrange([x,]y[,a]) 从x到y之间,以a递增的范围内随机取一个数
    random.randrange(5,10,2)
    random() 随机生成一个实数,它在(0,1)范围内
    random.random()
    seed([x]) 改变随机数生成器的种子seed,x可以是任意可散列对象
    random.seed(2)
    shuffle(lst) 将lst里的所有元素重新排序
    random.shuffle(list1)
    uniform(x,y) 在x至y的范围内随机生成一个实数
    random.uniform(1,10)

    三角函数

    math.radians(3)
    函数 描述 实例
    acos(x) 返回x的反余弦弧度值
    math.acos(0.64)返回0.8762980611683406
    asin(x) 返回x的反正弦弧度值
    math.asin(0.64)返回0.694498265626556
    atan(x) 返回x的正切弧度值
    math.atan(0.64)返回0.5693131911006619
    atan2(x,y) 返回给定的x及y坐标值的反正切值
    math.atan2(-0.50, -0.50)返回-2.356194490192345
    cos(x) 返回x的弧度的余弦值
    math.cos(3)返回-0.9899924966004454
    hypot(x,y) 返回欧几里得范数sqrt(x*x+y*y)
    math.hypot(3, 2)返回3.605551275463989
    sin(x) 返回x的弧度的正弦值
    math.sin(3)返回0.1411200080598672
    tan(x) 返回x的弧度的正切值
    math.tan(3)返回-0.1425465430742778
    degrees(x) 将弧度转换为角度,如degrees(math.pi/2)返回90.0
    math.degrees(3)返回171.88733853924697
    radians(x) 将角度转换为弧度
    math.radians(3)返回0.05235987755982989
  • 相关阅读:
    Falcon
    资源
    资源
    Python的高级Git库 Gittle_python_脚本之家
    How to provide username and password when run "git clone git@remote.git"?
    Python项目自动化部署最佳实践@搜狐 | the5fire的技术博客
    Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记
    Scaffold a Flask Project
    git python
    CentOS 删除自带的OpenJDK 和 安装SunJDK
  • 原文地址:https://www.cnblogs.com/fujiangong/p/5683162.html
Copyright © 2011-2022 走看看