python 生成随机数

Posted xiaozeng6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 生成随机数相关的知识,希望对你有一定的参考价值。

import random
import string
import time
from datetime import date,timedelta
class randoms():
    # 获取26个大小写字母
    letters = string.ascii_letters
    # 获取26个小写字母
    Lowercase_letters = string.ascii_lowercase
    # 获取26个大写字母
    Capital = string.ascii_uppercase
    # 获取阿拉伯数字
    digits = string.digits

1,随机生成指定位数的数字字母组合

    def code(self):
        # s是小写字母和数字的集合
        s = randoms.Lowercase_letters+randoms.digits
        #生成28位小写和数字的集合,并将列表转字符串
        code=‘‘.join(random.sample(s,28))
        print(随机code:%s%code)
        return code

或者

from datetime import date,timedelta
    def r_string(self):#生成随机字符串
        data="1234567890zxcvbnmlkjhgfdsaqwertyuiop"
        #用时间来做随机播种
        random.seed(time.time())
        #随机选取数据
        sa=[]
        for i in range(20):
            sa.append(random.choice(data))
        salt="gp_"+‘‘.join(sa)
        print(salt)
        # return salt

 

2,随机生成不包含某些字母或数字的字符

    def tax_code(self):
        list_1=[I,O,Z,S,V]
        list_2=[]
        for j  in  randoms().Capital:
            if j not in list_1:
                list_2.append(j)
        s =‘‘.join(list_2)  + randoms().digits
        tax_code=‘‘.join(random.sample(s,18))
        print(随机税号:%s%tax_code)
        return tax_code

3,生成随机手机号,详见https://blog.csdn.net/z5622139/article/details/79197089

    def telephone(self):
        # 第二位数字
        second = [3, 4, 5, 7, 8][random.randint(0, 4)]
        # 第三位数字
        third = 
            3: random.randint(0, 9),
            4: [5, 7, 9][random.randint(0, 2)],
            5: [i for i in range(10) if i != 4][random.randint(0, 8)],
            7: [i for i in range(10) if i not in [4, 9]][random.randint(0, 7)],
            8: random.randint(0, 9),
        [second]
        # 最后八位数字
        suffix = random.randint(10000000, 99999999)

        # 拼接手机号
        telephone="1".format(second, third, suffix)
        print(手机号:%s%telephone)
        return telephone

生成随机手机号方法2,详见https://www.cnblogs.com/jiuyigirl/p/7144725.html

    def create_telephone(self):
        telephone=random.choice([139, 188, 185, 136, 158, 151]) + "".join(
            random.choice("0123456789") for i in range(8))
        print(telephone)
        return telephone

 

函数使用补充说明

1,random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串,使用如下,详见https://www.cnblogs.com/jiuyigirl/p/7144725.html

random.random()    用于生成一个随机浮点数:range[0.0,1.0)

random.uniform(a,b)    用于生成一个指定范围内的随机浮点数,a,b为上下限,只要a!=b,就会生成介于两者之间的一个浮点数,若a=b,则生成的浮点数就是a

random.randint(a,b)    用于生成一个指定范围内的整数,a为下限,b为上限,生成的随机整数a<=n<=b;若a=b,则n=a;若a>b,报错

random.randrange([start], stop [,step])    从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1

random.choice(sequence)    从序列中获取一个随机元素,参数sequence表示一个有序类型,并不是一种特定类型,泛指list,tuple,字符串等

random.shuffle(x[,random])    用于将一个列表中的元素打乱

random.sample(sequence,k)    从指定序列中随机获取k个元素作为一个片段返回,sample函数不会修改原有序列

2,Python中有join()和os.path.join()两个函数,具体作用如下:
    join():    连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
    os.path.join():  将多个路径组合后返回

 

以上是关于python 生成随机数的主要内容,如果未能解决你的问题,请参考以下文章

Python代码阅读(第40篇):通过两个列表生成字典

Python random随机生成6位验证码示例代码

Python random随机生成6位验证码示例代码

用python生成随机数并在grafana上显示

python怎样生成正太分布的随机数

python怎样生成一个随机矩阵