博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Python】random模块生成多种类型随机数
阅读量:4100 次
发布时间:2019-05-25

本文共 2771 字,大约阅读时间需要 9 分钟。

开发和测试过程中我们经常遇到需要随机数的场景,比如为了用户密码更安全我们有时会加入随机码,也就是将用户原密码连接上一串随机字符然后加密保存,又比如我们可能需要随机展示某张图片等等。这篇文章主要介绍了各种生成随机数的方法,主要用到了random模块。

# 1. 生成随机小数
# 2. 生成随机整数
# 3. 拿指定列表中数据生成随机数
# 4. 获取纯数字可重复随机数
# 5. 获取纯数字不可重复随机数
# 6. 获取数字和字母组合的随机数,可重复

 # 7. 获取数字和字母组合的随机数,不可重复

以下是主要示例代码:

# -*- coding: utf-8 -*-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''#作者:cacho_37967865#博客:https://blog.csdn.net/sinat_37967865#文件:randomData.py#日期:2019-09-02#备注:多种随机数生成方法   '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''import random# 1. 生成随机小数def get_random():    data1 = random.random()    data2 = random.uniform(0,1)    print("随机大于0且小于1之间的小数:",data1)    print("随机一个大于N小于M的小数:",data2)# 2. 生成随机整数def get_randint():    data1 = random.randint(1,5)    data2 = random.randrange(1,10,2)    data3 = random.randrange(2, 10, 2)    print("随机一个大于等于1且小于等于5的整数:",data1)    print("随机一个大于等于1且小于10之间的奇数,其中2表示递增基数:",data2)    print("随机一个大于等于1且小于10之间的偶数,其中1表示递增基数:", data3)# 3. 拿指定列表中数据生成随机数def get_fromList():    list = ['123','abc',1,[1,2]]    data1 = random.choice(list)    data2 = random.sample(list,4)    print("从列表随机选择数:",data1)    print("从列表随机选择N个数:", data2)          # 拿出来的数不会重复,而且数量要小于等于列表长度    random.shuffle(list)    print("random.shuffle(list)打乱列表的顺序:", list)# 4. 获取纯数字可重复随机数def get_verifyCode(n):    codes = []    for i in range(n):        num = str(random.randint(0,9))        codes.append(num)    code = ''.join(codes)    print("生成N位数的数字随机数,可重复:",code)    return(code)# 5. 获取纯数字不可重复随机数def get_difCode(n):    codes = []    for i in range(10):        codes.append(str(i))    code = random.sample(codes, n)    code = ''.join(code)    print("生成N位数的数字随机数,不可重复:",code)    return(code)# 6. 获取数字和字母组合的随机数,可重复def get_mixCode(n):    codes = []    temp_code = []    for i in range(10):        codes.append(str(i))    for i in range(97,123):        codes.append(chr(i))                           # 26个小写英文字母    for i in range(97,123):        codes.append(chr(i).upper())                   # 26个大写英文字母    for i in range(n):        n_code = random.choice(codes)        temp_code.append(n_code)    code = ''.join(temp_code)    #print("生成N位数的数字随机数,可重复:",code)    return(code)# 7. 获取数字和字母组合的随机数,不可重复def get_mix_difCode(n):    codes = []    for i in range(10):        codes.append(str(i))    for i in range(97,123):        codes.append(chr(i))                           # 26个小写英文字母    for i in range(97,123):        codes.append(chr(i).upper())                   # 26个大写英文字母    code = random.sample(codes, n)    code = ''.join(code)    #print("生成N位数的数字随机数,不可重复:",code)    return(code)if __name__ == '__main__':    get_random()    #get_randint()    #get_fromList()    #get_verifyCode(6)    #get_difCode(6)    #get_mixCode(6)

 

你可能感兴趣的文章
collect2: ld returned 1 exit status
查看>>
C#入门
查看>>
查找最大值最小值
查看>>
杨辉三角
查看>>
冒泡排序法
查看>>
C#中ColorDialog需点两次确定才会退出的问题
查看>>
16、Memento 备忘录模式
查看>>
Java基础篇(一)
查看>>
数据库
查看>>
mysql update与group by
查看>>
nginx反代 499 502 bad gateway 和timeout
查看>>
linux虚拟机安装tar.gz版jdk步骤详解
查看>>
python猜拳游戏
查看>>
python实现100以内自然数之和,偶数之和
查看>>
python数字逆序输出及多个print输出在同一行
查看>>
python九九乘法表(详解)
查看>>
ESP8266 WIFI数传 Pixhaw折腾笔记
查看>>
苏宁产品经理面经
查看>>
百度产品经理群面
查看>>
去哪儿一面+平安科技二面+hr面+贝贝一面+二面产品面经
查看>>