洗礼灵魂,修炼python(13)--模块random,math,pickle
2018-03-02 12:28
666 查看
random
1.作用:random模块用于生成随机数2.常用函数:![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/d62c93f5258b8c67c21d4fec0ad23877.png)
random:用于生成一个0到1的随机符点数: 0 <= n < 1.0uniform(a, b):用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/6cdccdbce1fae249147fdc2ac16ba8ec.png)
randint(a, b):用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/ab6fbc5ab462a0a09343f35ac8ee6f29.png)
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。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/2208a9c13f4bdaf4b05a993997e5676a.png)
shuffle(x[, random]):用于将一个列表中的元素打乱。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/9cd23e487a7392665f2b58ae866a4850.png)
sample(sequence, k):从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/1bd07d910615a0cd00b7b982f59d7e51.png)
math
1.作用:math,即数学的意思,即里面的函数基本是处理数学运算的,前面其实也有提到,不过是并没有全部都说,只说了一个sqrt函数,在这里则把常用的都解析下2.常用函数:![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/05b065e4243d299599a83da10be5432d.png)
ceil(x):上移取项,给一个数字型数字,返回一个浮点型,如果本来为浮点型,则直接入一位
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/ee32b78a84e103b3de6009991e15b850.png)
floor(x) :下移取底,返回一个浮点型,有小数则舍去
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/88bb962d770d4317a265469faf9f8f4f.png)
fabs(x):取绝对值,注意和内置函数abs区分
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/7d1043aae0762afec487c295c01e735d.png)
factorial (x):阶乘
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/b303487024d688af191c197c47e8eb3b.png)
hypot(x,y) :sqrt(x*x+y*y)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/4f43e9af1f285bb032c8b434d2c6b9e7.png)
pow(x,y):x的y次方
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/2b2defd3e305daf7094e9748a26a3549.png)
sqrt(x):开平方
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/afdd3fae82c4d59fc17941f018140c94.png)
log(x):log函数
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/9eb28d632a6126611cdf35d5f6047ac6.png)
log10(x):底数为10的log函数
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/0cd368f64a3ade42c7c98f5e16e2a792.png)
trunc(x) 截断取整数部分
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/353c85302f489e49f617c168b130a150.png)
isnan (x):判断是否NaN(not a number),不是个数字则返回True,否则返回False
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/2e28bca7f382a75ca33f4cf904e4a2a3.png)
sin,cos,tan分别代表高中数学里的三角函数,不再解析degrees(x):弧度转角度
radians(x):角度转弧度
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/7212f874bbd867f6885c32ab219b1a78.png)
另外该模块定义了两个常量:e = 2.718281828459045
pi = 3.141592653589793
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/54c838e9e8192ad38f5eeb7b1e953a36.png)
pickle
1.作用:存储数据。如果有一些对象需要持久性存储,并且不丢失对象的类型与数据,则需要将对象进行序列化,序列化为二进制的这个过程叫腌制。需要使用的时候再恢复原来的数据,这个过程叫反腌制。2.常用函数:![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/06/6cc9f13fce2d5be480fc72f6ebef9f62.png)
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'\x80\x03]q\x00(X\x01\x00\x00\x00Aq\x01X\x01\x00\x00\x00Bq\x02X\x01\x00\x00\x00cq\x03X\x01\x00\x00\x00dq\x04e.' ['A', 'B', 'c', 'd']其实很简单,多操作几遍就会了,里面带有了对文件的操作,下一章详解文件操作模块os和os.path
相关文章推荐
- 洗礼灵魂,修炼python(11)--python函数,模块
- 洗礼灵魂,修炼python(14)--模块decimal, fractions,operator,collections以及精度介绍
- 洗礼灵魂,修炼python(35)--面向对象编程(5)—多重继承,组合
- python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
- 洗礼灵魂,修炼python(36)--面向对象编程(6)—类的相关内置函数issubclass,hasattr等
- 洗礼灵魂,修炼python(37)--面向对象编程(7)—了解魔法方法
- 洗礼灵魂,修炼python(9)--灵性的字符串
- 洗礼灵魂,修炼python(22)--自定义函数(3)—函数作用域,闭包
- 洗礼灵魂,修炼python(39)--面向对象编程(9)—魔法方法表
- 洗礼灵魂,修炼python(10)--有趣的判断分支+从实例中掌握循环语句
- 洗礼灵魂,修炼python(23)--自定义函数(4)—闭包进阶问题—>报错UnboundLocalError: local variable 'x' referenced before assign
- 洗礼灵魂,修炼python(26)--编程核心之“递归”
- 洗礼灵魂,修炼python(40)--面向对象编程(10)—定制魔法方法+time模块
- 洗礼灵魂,修炼python(12)--python关键词,包
- 洗礼灵魂,修炼python(24)--自定义函数(5)—匿名函数lambda
- 洗礼灵魂,修炼python(27)--异常处理(1)—>了解异常
- 洗礼灵魂,修炼python(25)--自定义函数(6)—从匿名函数进阶话题讲解中解析“函数式编程”
- 洗礼灵魂,修炼python(29)--装饰器(1)—>利用经典案例解析装饰器概念
- 洗礼灵魂,修炼python(30)--装饰器(2)—>装饰器总结+进阶使用
- 洗礼灵魂,修炼python(5)--python操作符,内置函数