Loading

random模块

1.random随机数模块

1.1random() 0-1之间的随机数

import random
ret = random.random()
print(ret)

1.2randint(a,b)  [a,b]之间的整数

import random
print(random.randint(1,5))#1<=x<=5

1.3uniform(a,b) a-b之间的小数

import random
print
(random.uniform(1,5))#1-2小数,2个参数是范围

1.4randrange(a,b) 只要有range就是顾头不顾腚

import random

print(random.randrange(1,10)
print(random.randrange(1,10,2))

1.5 choice() 随机返回一个

import random 
#最外层元素的元素随机返回一个
my_list = [1,23,["s",(1,"s")]]
print(random.choice(my_list))

1.6 sample(a,b) 随机返回a中b个元素

print(random.sample(my_list,2))#不会重复,多次调用choice可能会重复

1.7 shuffle() 打乱内部顺序

没有产生新的序列,而是原列表打乱序列

import random
random.shuffle(my_list)
print(my_list)

2. 实例

2.1 返回指定数目的数字验证码

#返回指定数目的验证码
def code(n=6):
    s = ""
    for i in range(n):
        num = random.randint(0,9)
        s+=str(num)
    return s
print(code(6))

2.2返回指定数目的数字和字母组合的验证码

def new_code(n=6,alpha = True):
    #生成数字和字母
    #随机选择一个数字或字母
    s= ""
    for i in range(n):
        num = str(random.randint(0,9))
        if alpha:
            ap = chr(random.randint(65,90))
            res = random.choice([num,ap])
        else:
            res = ap
        s+=resreturn s
print("ll",new_code())
#验证码含有数字和字母,且数目和字母都具有自由度
def code_mul(n=6,alpha=True):
    s = ""
    for i in range(n):
        num = str(random.randint(0,9))
        if alpha:
            alpha = chr(random.randint(65,90))
#代码进行了优化,变量名的技巧,有字母就把最终的结果用num作为选择结果换之
#没有字母就直接用num,不进入if中对num进行替换 num
= random.choice([num,alpha]) s+=num return s print(code_mul(4,alpha=False)) print(code_mul())

 

posted @ 2019-10-02 09:46  浅忆尘  阅读(107)  评论(0编辑  收藏  举报