写点什么

Python 进阶 (三十)Python3 实现随机数

  • 2022-11-13
    江苏
  • 本文字数:981 字

    阅读完需:约 3 分钟

Python进阶(三十)Python3实现随机数

一、random 随机函数

random是用于生成随机数的,可以利用它随机生成数字或者选择字符串。


  • random.seed(x)改变随机数生成器的种子seed。一般不必特别去设定seedPython会自动选择seed

  • random.random() 用于生成一个随机浮点数 n,0 <= n < 1

  • random.uniform(a,b) 用于生成一个指定范围内的随机浮点数,生成的随机整数a<=n<=b;

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

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

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

  • random.shuffle(x[,random]) 用于将一个列表中的元素打乱(洗牌),会改变原始列表。

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


但是,有一点需要注意:python random 是伪随机数。


那么,可以借用 python random 实现真随机数吗?答案是 No。所谓真随机数,是要求根据绝对随机事件产生的数,也就是说要求要有一个无因果关系的随机事件,那么,这其实只存在与哲学领域……


目前的随机数产生都是统计上的随机,因为随机源都是自然事件,顶天了算是混沌变量,绝对的无因果大概是不存在的。


不过统计随机基本上都够用了吧……还是老老实实的用 random 模块吧....

二、代码演示

import random#随机整数import string
print(random.randint(0,99))#随机选取0到100间的偶数print(random.randrange(0, 101, 2))#随机浮点数print(random.random())print(random.uniform(1, 10))#随机字符print(random.choice('abcdefg&#%^*f'))#多个字符中选取特定数量的字符print(random.sample('abcdefghij',3))#多个字符中选取特定数量的字符组成新字符串# print(string.join(random.sample(['a','b','c','d','e','f','g','h','i','j'], 3)).replace(" ",""))#随机选取字符串print(random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] ))#洗牌items = [1, 2, 3, 4, 5, 6]random.shuffle(items)print("洗牌:", items)#从指定序列中随机获取k个元素作为一个片段返回,不会改变原有序列list = []list = random.sample(items,2)print(list)
复制代码


执行结果:



发布于: 刚刚阅读数: 3
用户头像

No Silver Bullet 2021-07-09 加入

岂曰无衣 与子同袍

评论

发布
暂无评论
Python进阶(三十)Python3实现随机数_Python_No Silver Bullet_InfoQ写作社区