Python入门(十三):常用标准库(3)—— random

random

概述

随机现象在生活中经常中十分常见,例如支付宝锦鲤抽奖就是利用随机数进行抽选。
随机数在计算机应用中十分普遍。由于是程序控制的,我们一般也称为伪随机数,主要是利用梅森旋转算法(Mersenne twister)生成的(伪)随机序列的元素。
在 Python 中,常用 random 库生成各种分布的伪随机数序列,可用于除随机性要求更高的加解密算法外的大多数工程应用。

引入

引入方式同其他库一样,在此不再赘述。

使用

random 库中的随机函数分为两类:基本随机函数seed(a)random()和一系列基于这两个函数所拓展的随机数函数。

基本随机数函数

与其他编程语言类似,Python 语言中随机数的生成基于随机数“种子”,每个种子作为输入,利用算法生成一系列随机数,构成伪随机序列。

  • seed(a=None):初始化给定的随机数种子,默认为当前系统时间

random() 函数是随机数函数的最基本函数,其余函数均可由其扩展而得。

  • random():生成一个[0.0,1.0)之间的随机小数

扩展随机数函数

  • randint(a,b):生成一个[a,b]之间的整数
  • randrange(a,b,c):生成一个[a,b)之间以c为步长的随机整数
  • getrandbits(k):生成一个k比特长度的随机整数
  • uniform(a,b):生成一个[a,b]之间的小数
  • choice(seq):从序列类型中随机返回一个元素
  • shuffle(seq):将序列类型中的元素随机排列,返回新序列
  • sample(pop,k):从 pop 类型中随机选取k个元素,以列表类型返回

示例

雪景艺术绘图

让我们尝试着用一些简单的标准库画一幅美丽的黑夜雪景图吧(虽说雪只有一种颜色,但五颜六色岂不是更酷炫???)。代码如下:

# -*-coding:utf-8-*-
from random import *
from turtle import *
def drawSnow():
	hideturtle()
	pensize(2)
	for i in range(100):
		r,g,b = random(),random(),random()
		pencolor(r,g,b)
		pu()
		setx(randint(-350,350))
		sety(randint(1,270))
		pd()
		dens = randint(8,12)
		snowsize = randint(10,14)
		for j in range(dens):
			fd(snowsize)
			bk(snowsize)
			right(360/dens)
def drawGround():
	hideturtle()
	for i in range(400):
		pensize(randint(5,10))
		x = randint(-400,350)
		y = randint(-280,-1)
		r,g,b = -y/280,-y/280,-y/280
		pencolor((r,g,b))
		pu()
		goto(x,y)
		pd()
		fd(randint(40,100))
setup(800,600,200,200)
tracer(False)
bgcolor("black")
drawSnow()
drawGround()
done()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值