美文网首页
python标准库-random

python标准库-random

作者: 老张_Jason | 来源:发表于2021-12-14 02:14 被阅读0次

    random 模块介绍

    random() 方法返回随机生成的一个实数,该数的范围为[0, 1)
    语法如下:

    import random
    
    random.random()
    

    需要注意的是random()是不能访问的,需要导入random模块,然后通过random静态对象调用该方法

    import random
    
    print("生成第一个随机数:%f" % random.random())
    print("生成第二个随机数:%f" % random.random())
    

    执行结果示例

    D:\python\python.exe D:/Teaching_Project/py_progress/random_topic.py
    生成第一个随机数:0.649431
    生成第二个随机数:0.827456
    
    Process finished with exit code 0
    

    在random模块中还有很多其他的随机数方法,依次介绍如下:
    -random.sample()
    -random.randint()
    -random.randrange()
    -random.uniform()
    -random.shuffle()
    -random.choice()

    random.sample():从指定的序列或者列表中,随机的选取n个字符或者元素

    random_sample_str = "So dim, so dark. So dense, so dull. So damp, so dank, so dead."
    random_sample_list = ["So dim", "so dark", "So dense", "so dull", "So damp", "so dank", "so dead"]
    
    print(random.sample(random_sample_str, 10))
    print(random.sample(random_sample_list, 2))
    

    执行结果示例:

    ['.', 'd', 'd', 'a', 'r', ' ', 'm', '.', 'd', 's']
    ['So damp', 'So dense']
    

    random.randint():随机整数,包含上下限

    rand_int = random.randint(1, 2000)
    print("我是一个随机整数:%d" % rand_int)
    

    random.randrange(0, 101, 2):随机生成一个0-100之间的偶数

    print(random.randrange(0, 101, 2))
    print(random.randrange(1, 1001, 3))  # 参数为区间边界(左闭右开)、步长,start,stop,step
    

    random.uniform(u, sigma): 指定范围内的随机浮点数

    print(random.uniform(1, 100))
    print(random.uniform(1, 100))
    

    random.seed(int): 在伺服的情况下生成一个随机数
    -给随机数对象一个种子值,用于产生随机序列。
    -对于同一个种子值的输入,之后产生的随机数序列也一样。
    -通常是把时间秒数等变化值作为种子值,达到每次运行产生的随机系列都不一样
    -seed() 省略参数,意味着使用当前系统时间生成随机数
    -这个方法的使用主要场景是为了保证生成的随机数依然具有唯一性,例如当我们将时间戳传入时

    random.seed(99)
    print(random.random())
    random.seed(99)
    print(random.random())
    random.seed(88)
    print(random.random())
    print(random.random())
    

    random.choice(): 随机元素,参数可以使字符串、列表、元组

    print(random.choice("2345678910JQKAwW"))
    print(random.choice("鹅鹅鹅,曲项向天歌,白毛浮绿水,红掌拨清波"))
    print(random.choice([1, 2, 3]))
    print(random.choice(("J", "Q", "K")))
    

    使用案例

    多个字符中选取指定数量的字符组成新字符串:

    print(''.join(random.sample(
        ['z', 'y', 'x', 'w', 'v', 'u', 't', 's', 'r', 'q', 'p', 'o', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f', 'e', 'd',
         'c', 'b', 'a'], 8)))
    print(''.join(random.sample(
        ['z', 'y', 'x', 'w', 'v', 'u', 't', 's', 'r', 'q', 'p', 'o', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f', 'e', 'd',
         'c', 'b', 'a'], 8)))
    

    洗扑克牌的案例:

    pukepai_list = [2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K", "A", "w", "W", 2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K",
                    "A", "w", "W", 2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K", "A", "w", "W", 2, 3, 4, 5, 6, 7, 8, 9, 10,
                    "J", "Q", "K", "A", "w", "W"]
    print(pukepai_list)
    random.shuffle(pukepai_list)
    print(pukepai_list)
    

    下面这种写法无意义,应为shuffle没有返回序列对象,而是直接将内存中元素的序列顺序打乱:

    pukepai_list_new = random.shuffle(pukepai_list)
    print(pukepai_list_new)
    

    相关文章

      网友评论

          本文标题:python标准库-random

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