zoukankan      html  css  js  c++  java
  • 洗礼灵魂,修炼python(13)--模块random,math,pickle

    random

    1.作用:

    random模块用于生成随机数

    2.常用函数:

    random:用于生成一个0到1的随机符点数: 0 <= n < 1.0

    uniform(a, b):用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。

    randint(a, b):用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b

     

    randrange([start], stop[, step]):从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。randrange(10, 100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。

    choice:从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。

    shuffle(x[, random]):用于将一个列表中的元素打乱。

    sample(sequence, k):从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。

    math

    1.作用:

    math,即数学的意思,即里面的函数基本是处理数学运算的,前面其实也有提到,不过是并没有全部都说,只说了一个sqrt函数,在这里则把常用的都解析下

    2.常用函数:

    ceil(x):上移取项,给一个数字型数字,返回一个浮点型,如果本来为浮点型,则直接入一位


    floor(x) :下移取底,返回一个浮点型,有小数则舍去


    fabs(x):取绝对值,注意和内置函数abs区分


    factorial (x):阶乘


    hypot(x,y) :sqrt(x*x+y*y)

    pow(x,y):x的y次方


    sqrt(x):开平方


    log(x):log函数


    log10(x):底数为10的log函数


    trunc(x)  截断取整数部分


    isnan (x):判断是否NaN(not a number),不是个数字则返回True,否则返回False

    sin,cos,tan分别代表高中数学里的三角函数,不再解析

    degrees(x):弧度转角度
    radians(x):角度转弧度

    另外该模块定义了两个常量:

    e = 2.718281828459045
    pi = 3.141592653589793

    pickle

    1.作用:

    存储数据。

    如果有一些对象需要持久性存储,并且不丢失对象的类型与数据,则需要将对象进行序列化,序列化为二进制的这个过程叫腌制。需要使用的时候再恢复原来的数据,这个过程叫反腌制。

    2.常用函数:

    pickle腌制模块用得最多还是腌制+反腌制里带有的两个函数:

    方法1:对文件操作

    • dump(object, file)
    • load(file) -> object

    例:

    import pickle
    my_list=[12312,4454,"54",["hello"]]
    pickle_file=open("my_list.pk1","wb")  #文件存储必须使用二进制模式
    pickle.dump(my_list,pickle_file)
    pickle_file.close()            #文件使用完必须close关闭,不然占内存,后果严重
    pickle_file=open("my_list.pk1","rb")
    my_list2=pickle.load(pickle_file)
    print(my_list2)

    得结果:

    [12312, 4454, '54', ['hello']]

    方法2:对对象操作

    • dumps(object) -> string
    • loads(string) -> object

    例:

    import pickle
    list1=["A","B","c","d"]
    list2=pickle.dumps(list1)   #dumps(obj,object,对象) 将对象序列化二进制
    print (lsit2)
    
    list3=pickle.loads(list2)   #loads(序列化之后的对象) 将对象原封不动恢复
    print (list3)

     得结果:

    b'x80x03]qx00(Xx01x00x00x00Aqx01Xx01x00x00x00Bqx02Xx01x00x00x00cqx03Xx01x00x00x00dqx04e.'
    
    ['A', 'B', 'c', 'd']

    其实很简单,多操作几遍就会了,里面带有了对文件的操作,下一章详解文件操作模块os和os.path

  • 相关阅读:
    HAProxy、Keepalived 在 Ocatvia 的应用实现与分析
    Octavia 的 HTTPS 与自建、签发 CA 证书
    Octavia 创建 loadbalancer 的实现与分析
    OpenStack Rally 质量评估与自动化测试利器
    自建 CA 中心并签发 CA 证书
    Failed building wheel for netifaces
    通过 vSphere WS API 获取 vCenter Datastore Provisioned Space 置备空间
    OpenStack Placement Project
    我们建了一个 Golang 硬核技术交流群(内含视频福利)
    没有图形界面的软件有什么用?
  • 原文地址:https://www.cnblogs.com/Eeyhan/p/7631685.html
Copyright © 2011-2022 走看看