zoukankan      html  css  js  c++  java
  • python3: 数字日期和时间(1)

    1. 数字的四舍五入

    Q: 你想对浮点数执行指定精度的舍入运算

    A: 简单的使用内置的round(value, ndigits)函数即可。

    >>> round(1.23, 1)
    1.2
    >>> round(1.27, 1)
    1.3
    >>> round(-1.27, 1)
    -1.3
    >>> round(1.25361,3)
    1.254
    >>>

    当一个值刚好在两个边界的中间的时候, round 函数返回离它最近的偶数。 也就是说,对1.5或者2.5的舍入运算都会得到2。

    >>> round(1.25)
    2
    >>> round(2.5)
    2

    传给 round() 函数的 ndigits 参数可以是负数,这种情况下, 舍入运算会作用在十位、百位、千位等上面。比如:

    >>> a = 1627731
    >>> round(a, -1)
    1627730
    >>> round(a, -2)
    1627700
    >>> round(a, -3)
    1628000
    >>>

    区别:格式化()

    >>> x = 1.23456
    >>> format(x, '0.2f')
    '1.23'
    >>> format(x, '0.3f')
    '1.235'
    >>> 'value is {:0.3f}'.format(x)
    'value is 1.235'
    >>>

    2. 执行精确的浮点数运算

    decimal 模块

    3.数字的格式化输出

    格式化输出单个数字的时候,可以使用内置的 format() 函数,比如:

     
    >>> x = 1234.56789
    
    >>> # Two decimal places of accuracy
    >>> format(x, '0.2f')
    '1234.57'
    
    >>> # Right justified in 10 chars, one-digit accuracy
    >>> format(x, '>10.1f')
    '    1234.6'
    
    >>> # Left justified
    >>> format(x, '<10.1f')
    '1234.6    '
    
    >>> # Centered
    >>> format(x, '^10.1f')
    '  1234.6  '
    
    >>> # Inclusion of thousands separator
    >>> format(x, ',')
    '1,234.56789'
    >>> format(x, '0,.1f')
    '1,234.6'
    >>>

    如果你想使用指数记法,将f改成e或者E(取决于指数输出的大小写形式)。比如:

    >>> format(x, 'e')
    '1.234568e+03'
    >>> format(x, '0.2E')
    '1.23E+03'
    >>>

    4. 二八十六进制整数

    为了将整数转换为二进制、八进制或十六进制的文本串, 可以分别使用 bin() , oct() 或 hex()函数

    5. 字节到大证书的打包于解包

    6. 复数的数学运算

    7. 无穷大与NaN

    8. 分数运算 

    9. 大型数组运算

    10.矩阵与线性代数运算

    11.随机选择

    Q: 你想从一个序列中随机抽取若干元素,或者想生成几个随机数。

    要想从一个序列中随机的抽取一个元素,可以使用 random.choice() :

    >>> import random
    >>> values = [1, 2, 3, 4, 5, 6]
    >>> random.choice(values)
    2
    >>> random.choice(values)
    3
    >>> random.choice(values)
    1
    >>> random.choice(values)
    4
    >>> random.choice(values)
    6
    >>>

    为了提取出N个不同元素的样本用来做进一步的操作,可以使用 random.sample() :

    >>> random.sample(values, 2)
    [6, 2]
    >>> random.sample(values, 2)
    [4, 3]
    >>> random.sample(values, 3)
    [4, 3, 1]
    >>> random.sample(values, 3)
    [5, 4, 1]
    >>>

    如果你仅仅只是想打乱序列中元素的顺序,可以使用 random.shuffle() :

    >>> random.shuffle(values)
    >>> values
    [2, 4, 6, 5, 3, 1]
    >>> random.shuffle(values)
    >>> values
    [3, 5, 2, 1, 6, 4]
    >>>

    生成随机整数,请使用 random.randint() :

    >>> random.randint(0,10)
    2
    >>> random.randint(0,10)
    5
    >>> random.randint(0,10)
    0
    >>> random.randint(0,10)
    7
    >>> random.randint(0,10)
    10
    >>> random.randint(0,10)
    3
    >>>

    为了生成0到1范围内均匀分布的浮点数,使用 random.random() :

    random 模块使用 Mersenne Twister 算法来计算生成随机数。这是一个确定性算法, 但是你可以通过 random.seed() 函数修改初始化种子。

    在 random 模块中的函数不应该用在和密码学相关的程序中。 如果你确实需要类似的功能,可以使用ssl模块中相应的函数。 比如, ssl.RAND_bytes() 可以用来生成一个安全的随机字节序列。

     

  • 相关阅读:
    【WCSF】DynamicMethod 的类型所有者无效解决方案
    关于微软企业库查询语句db.ExecuteNonQuery(cmd)返回1的问题
    ASP.NET 如何取得 Request URL 的各個部分
    CSS模拟HTML滚动条
    JavaScript Madness不同的浏览器的keycode比较
    手机身份证IP地址开放接口
    sql添加数据后返回受影响行数据
    jquery下removeClass(“oldClassName”).addClass("newClassName")的问题
    躺着看书!这是所谓 "躺着就能长智慧" 吗?
    在web开发中使用dynsrc被McAfee报木马病毒的解决
  • 原文地址:https://www.cnblogs.com/xiyuan2016/p/10342423.html
Copyright © 2011-2022 走看看