import random
a=random.randint(1,100)
print ('a='+str(a))
b=random.randint(3, 3)
print ('b='+str(b))
c=random.random() #生成一个0到1之间的随机浮点数,包括0但不包括1,也就是[0.0, 1.0)
print ('c='+str(c))
d=random.uniform(2, 4)
e=random.uniform(4, 2)
print ('d='+str(d))
print ('e='+str(e))
#random.randrange(start, stop, step)
f=random.randrange(4) #[0, 1, 2, 3]
g=random.randrange(1, 4) #[1, 2, 3]
print ('f='+str(f))
print ('g='+str(g))
print '------------'
#random.sample(population, k) 从population序列中,随机获取k个元素,生成一个新序列。sample不改变原来序列。
population=[1,3,3,24,4,5,7,3,8,0]
h=random.sample(population,5)
print h
print population
#random.shuffle(x)
x=[1,3,4,2,24,41,13]
i=random.shuffle(x)
print x
print i
结果:
a=5
b=3c=0.566649830344
d=3.48932108327
e=3.84200455696
f=1
g=3
------------
[4, 3, 8, 1, 5]
[1, 3, 3, 24, 4, 5, 7, 3, 8, 0]
[1, 2, 24, 3, 41, 13, 4]
None
random模块的作用是产生随机数。之前的小游戏中用到过random中的randint:
import random
num = random.randint(1,100)
random.randint(a, b)可以生成一个a到b间的随机整数,包括a和b。
a、b都必须是整数,且必须b≥a。当等于的时候,比如:
random.randint(3, 3)
的结果就永远是3
除了randint,random模块中比较常用的方法还有:
random.random()
生成一个0到1之间的随机浮点数,包括0但不包括1,也就是[0.0, 1.0)。
random.uniform(a, b)
生成a、b之间的随机浮点数。不过与randint不同的是,a、b无需是整数,也不用考虑大小。
random.uniform(1.5, 3)
random.uniform(3, 1.5)
这两种参数都是可行的。
random.uniform(1.5, 1.5)永远得到1.5。
random.choice(seq)
从序列中随机选取一个元素。seq需要是一个序列,比如list、元组、字符串。
random.choice([1, 2, 3, 5, 8, 13]) #list
random.choice('hello') #字符串
random.choice(['hello', 'world']) #字符串组成的list
random.choice((1, 2, 3)) #元组
都是可行的用法。
random.randrange(start, stop, step)
生成一个从start到stop(不包括stop),间隔为step的一个随机数。start、stop、step都要为整数,且start<stop。
比如:
random.randrange(1, 9, 2)
就是从[1, 3, 5, 7]中随机选取一个。
start和step都可以不提供参数,默认是从0开始,间隔为1。但如果需要指定step,则必须指定start。
random.randrange(4) #[0, 1, 2, 3]
random.randrange(1, 4) #[1, 2, 3]
random.randrange(start, stop, step)其实在效果上等同于
random.choice(range(start, stop, step))
random.sample(population, k)
从population序列中,随机获取k个元素,生成一个新序列。sample不改变原来序列。
random.shuffle(x)
把序列x中的元素顺序打乱。shuffle直接改变原有的序列。