美文网首页
random妙用

random妙用

作者: 黎小明少 | 来源:发表于2017-01-01 11:54 被阅读0次

python的random模块可以随机生成密码,下面我们来尝试一下:

一、random.randint()

random.randint()的用法如下:

random.randint(a, b)
    Return a random integer N such that a <= N <= b. Alias for randrange(a, b+1).

1、配合高阶函数reduce使用

创建一个test1.py:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import random
from functools import reduce
def akb():
    return [random.randint(0,9) for av in range(6)]
def ske(a,v):
    return a*10+v
if __name__=="__main__":
   for av in range(3):
       print(reduce(ske,akb()))

运行结果如下:

959483
600518
8851

纳尼,最后一个怎么和前面的不同啊。当然啦,akb()生成的列表前面如果是0,利用高阶函数reduce通过ske作用于akb(),0乘以10等于0,最后一个结果本应是008851,没有格式化,所以最终是8851。

2、配合格式化使用

创建一个test2.py:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import random
def akb():
    return [random.randint(0,9) for av in range(6)]
if __name__=="__main__":
    for av in range(3):
        print("%d%d%d%d%d%d"%tuple(akb()))

运行结果如下:

608973
843470
350633

二、random.choice()

前面的代码只是生成数字密码,如果想生成数字、大小写英文字母和特殊符号的混合密码呢?表急,我们可以用random.choice()。random.choice()的用法如下:

random.choice(seq)
    Return a random element from the non-empty sequence seq. If seq is empty, raises IndexError.

创建一个test3.py:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import random
import string
def akb():
    ske=string.ascii_letters+string.digits+"!@#$%^&*()"
    return ''.join([random.choice(ske) for av in range(6)])
if __name__=="__main__":
    for av in range(3):
        print(akb())

运行结果如下:

^zLN8h
g@cpJz
0F05*V

三、生活中的使用

1、密码

有时候我们需要6位数的数字密码,有时候我们需要8位数的混合密码。好吧,创建一个password.py:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import random
import string
length=int(input("请输入你需要的密码位数:"))
ske=input("请输入你需要的密码形式(如需要全数字则输入1,输入其它则是数字、大小写英文字母和特殊符号的密码形式):")
def akb():
    if ske=="1":
        return ''.join([random.choice(string.digits) for av in range(length)])
    else:
        chrs=string.ascii_letters+string.digits+"!@#$%^&*()"
        return ''.join([random.choice(chrs) for av in range(length)])
if __name__=="__main__":
    for av in range(3):
        print(akb())

运行结果如下:

请输入你需要的密码位数:6
请输入你需要的密码形式(如需要全数字则输入1,输入其它则是数字、大小写英文字母和特殊符号的密码形式):av
c0#986
)(9@&U
fWeUx)

2、购买双色球

其实random还可以拿来购买彩票,我们以双色球来举个粟子,双色球玩法是先从1-33个红球中选出6个红球,然后再从1-16个蓝球中选出1个蓝球。而且红球不能有重复,好吧,外甥打灯笼——照旧,先创建一个lottery.py:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import random
def akb():
    ske=[]
    while len(ske)<6:
        nmb=random.randint(1,33)
        hkt=0
        if len(ske)>=1:
            for av in range(len(ske)):
                if nmb==ske[av]:
                    hkt=1
        if hkt==0:
            ske.append(nmb)
    return ["红球",sorted(ske)]+["蓝球",random.randint(1,16)]
if __name__=="__main__":
    print(akb())

运行结果如下:

['红球', [9, 10, 14, 20, 22, 25], '蓝球', 7]

新年快乐!

相关文章

  • random妙用

    python的random模块可以随机生成密码,下面我们来尝试一下: 一、random.randint() ran...

  • random module

    import random random.random() ===> [0.0, 1.0) random.choi...

  • python random模块总结

    代码开始出加入import random导入random模块 1、random.random random.ran...

  • python random模块

    一、python标准库中的random模块常用的方法 random.random random.random()用...

  • random

    random.random() random.uniform(a, b) random.choice(seq) r...

  • random库(随机数)

    import random random.random()生成0~1的随机小数 random.randint(a,...

  • Python 标准库

    随机数random模块random.seed(10)random.random() #0.571402594...

  • java util

    1、Random随机数类 Random构造方法(1)public Random()(2)public Random...

  • 随机数函数

    import random random.random():产生0~1之间的随机数 random.randint(...

  • Python生成随机数函数有哪些?

    import random random.random() 随机生成0-1之间的数字 random.uniform...

网友评论

      本文标题: random妙用

      本文链接:https://www.haomeiwen.com/subject/zgfivttx.html