前面几节看得真心累。如今先来点简单easy理解的内容。

一 math包

math包主要处理数学相关的运算。

常数

math.e   # 自然常数e

math.pi  # 圆周率pi

运算函数

math.ceil(x)       # 对x向上取整。比方x=1.2,返回2

math.floor(x)      # 对x向下取整。比方x=1.2,返回1

math.pow(x,y)      # 指数运算。得到x的y次方

math.log(x)        # 对数。默认基底为e。能够使用base參数。来改变对数的基地。比方math.log(100,base=10)

math.sqrt(x)       # 平方根

三角函数

math.sin(x), math.cos(x), math.tan(x), math.asin(x), math.acos(x), math.atan(x)

这些函数都接收一个弧度(radian)为单位的x作为參数。

角度和弧度互换

math.degrees(x), math.radians(x)

双曲函数

math.sinh(x), math.cosh(x), math.tanh(x), math.asinh(x), math.acosh(x), math.atanh(x)

特殊函数

math.erf(x), math.gamma(x)

二 random包

假设你已经了解伪随机数(psudo-random number)的原理。那么你能够使用例如以下:

random.seed(x)

来改变随机数生成器的种子seed。假设你不了解其原理,你不必特别去设定seed。Python会帮你选择seed。

随机挑选和排序

random.choice(seq)   # 从序列的元素中随机挑选一个元素,比方random.choice(range(10))。从0到9中随机挑选一个整数。

random.sample(seq,k) # 从序列中随机挑选k个元素

random.shuffle(seq)  # 将序列的全部元素随机排序

随机生成实数

以下生成的实数符合均匀分布(uniform distribution)。意味着某个范围内的每一个数字出现的概率相等:

random.random()          # 随机生成下一个实数,它在[0,1)范围内。

random.uniform(a,b)      # 随机生成下一个实数。它在[a,b]范围内。





以下生成的实数符合其他的分布 (你能够參考一些统计方面的书籍来了解这些分布):

random.gauss(mu,sigma)    # 随机生成符合高斯分布的随机数。mu,sigma为高斯分布的两个參数。

random.expovariate(lambd) # 随机生成符合指数分布的随机数。lambd为指数分布的參数。

此外还有对数分布,正态分布。Pareto分布。Weibull分布





如果我们有一群人參加舞蹈比赛。为了公平起见。我们要随机排列他们的出场顺序。我们以下利用random包实现:

import random
all_people = ['Tom', 'Vivian', 'Paul', 'Liya', 'Manu', 'Daniel', 'Shawn']
random.shuffle(all_people)
for i,name in enumerate(all_people):
print(i,':'+name)

最新文章

  1. java 文件上传
  2. 让webstorm支持avalon语法自动补全
  3. datatable group by
  4. .NET软件工程师面试总结
  5. JavaScript list 去重复
  6. php文件上传之多文件上传
  7. ubuntu maven环境安装配置
  8. (转载)c# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值
  9. tomcat 部署多个项目的技巧
  10. 在一个字符串(1<=字符串长度<=10000,全部由大小写字母组成)中找到第一个只出现一次的字符,并返回它的位置
  11. 使用openxml读取xml数据
  12. Volley框架支持HTTPS请求。
  13. 1034 - Navigation
  14. PyCharm常用设置
  15. QNX 多线程 (线程1每隔20ms读取 number;线程2每隔10ms计算一次)
  16. java 表现层:jsp、freemarker、velocity
  17. 复习C#
  18. python3的变量作用域规则和nonlocal关键字
  19. ServiceNow在中国还有没有模仿者?
  20. VSCode tasks.json中的各种替换变量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等

热门文章

  1. 【转】UpdateData()函数
  2. Myeclipse快速排版的快捷键
  3. 开源敏捷测试管理& 开源BUG跟踪管理软件itest(爱测试) V3.3.0隆重发布
  4. http和socket
  5. Luogu P1315 观光公交
  6. 关于Integer,127和128的问题
  7. TensorFlow2-维度变换
  8. python 网络编程基础
  9. configparser logging
  10. (转载)O(N)的素数筛选法和欧拉函数