进阶第十一课 Python模块之random

random就是随机的意思,在Python中就是按照指定范围和规则,做随机取数的工作。

 看下例子:

>>> import random
>>> random.random()
0.8899104894509411
>>> random.random()
0.19533630110531885

1、random.random()

在0到1之间取数。

2、random.randint(a,b)

其中a和b都是整数,看例子:

>>> random.randint(1,10)
8

取数范围从1到10之间的10个整数,即范围包含a,也包含b。

3、random.choice()

>>> random.choice('Hello!')
'o'
>>> random.choice('Hello!')
'l'
>>> random.choice('Hello!')
'!'
>>> random.choice('Hello!')
'o'
>>> random.choice('Hello!')
'e'
>>> random.choice('Hello!')
'H'
>>> random.choice('Hello!')
'l'

下面这个例子,由于范围值是一个字符串,那么返回值就是字符串中的随机一个字符。再看另一个例子:

>>> random.choice([1,3,[1,2,3],(1,2,3)])
1
>>> random.choice([1,3,[1,2,3],(1,2,3)])
(1, 2, 3)
>>> random.choice([1,3,[1,2,3],(1,2,3)])
[1, 2, 3]
>>> random.choice([1,3,[1,2,3],(1,2,3)])
[1, 2, 3]
>>> random.choice([1,3,[1,2,3],(1,2,3)])
1
>>> random.choice([1,3,[1,2,3],(1,2,3)])
3
>>> random.choice([1,3,[1,2,3],(1,2,3)])
1
>>> random.choice([1,3,[1,2,3],(1,2,3)])
(1, 2, 3)

当choice的参数是一个列表时,看下返回值。

4、random.sample()

>>> random.sample([1,3,[1,2,3],(1,2,3),1,5,7,[7,8,9],100],3)
[5, 100, (1, 2, 3)]
>>> random.sample([1,3,[1,2,3],(1,2,3),1,5,7,[7,8,9],100],3)
[[1, 2, 3], 3, 100]
>>> random.sample([1,3,[1,2,3],(1,2,3),1,5,7,[7,8,9],100],3)
[[7, 8, 9], 7, 1]
>>> random.sample([1,3,[1,2,3],(1,2,3),1,5,7,[7,8,9],100],3)
[3, [1, 2, 3], 1]
>>> random.sample([1,3,[1,2,3],(1,2,3),1,5,7,[7,8,9],100],3)
[1, 5, 7]

sample后面有2个参数,即sample(a,b)。其中a是一个序列,里面都是数字组成的元素:数字、元祖和序列;b是一个整数,指定返回几个唯一值。上面的例子中参数a有两个1,但是返回的3个值不会有2个1。

5、random.randrage()

看例子:

>>> random.randrange(1,3)
2
>>> random.randrange(1,3)
2
>>> random.randrange(1,3)
2
>>> random.randrange(1,3)
2
>>> random.randrange(1,3)
2

之前已经学过range这个函数,range(1,3)的范围包含1但不包含3。

6、下面看一个例子,随机生成一个5位编码,里面有数字、大写英语字母和小写英语字母。看例子:

>>> def code():
        code=''
        for i in range(5):
            num=random.randrange(10)
            Uc=chr(random.randrange(65,91))
            Dc=chr(random.randrange(97,123))
            fc=random.choice([num,Uc,Dc])
            code+=str(fc)
        return code


>>> import random
>>> code()
'81Ve2'
>>> code()
'1Sl37'
>>> code()
'1uwpj'
>>> code()
'oqBi5'
>>>

分析一下:

1)code是一个空白字符串;作为最终的5位随机字符串,里面可以有数字和大小写字母。

2)num是0到9任意一个数字。

3)Uc是任意一个大写字母。chr()函数,是把ascii中的一个数字转换为对应的符号,65-90对应A-Z;97-122对应a-z。

4)Dc是任意一个小写字母。

5)fc是在num、Uc和Dc三级随机字符中,再随机选取一个;这样每一位都可能是数字、大写字母或者小写字母。

6)把fc加入到code中。

 

posted @ 2018-03-31 07:39  驼背蜗牛  阅读(431)  评论(0编辑  收藏  举报