当前位置: 首页 > 编程笔记 >

Python 实现随机数详解及实例代码

周培
2023-03-14
本文向大家介绍Python 实现随机数详解及实例代码,包括了Python 实现随机数详解及实例代码的使用技巧和注意事项,需要的朋友参考一下

Python3实现随机数

  • random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串。
  • random.seed(x)改变随机数生成器的种子seed。
  • 一般不必特别去设定seed,Python会自动选择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表示一个有序类型,并不是一种特定类型,泛指list,tuple,字符串等
  • 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)

  结果

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍java 实现 stack详解及实例代码,包括了java 实现 stack详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 栈是限制插入和删除只能在一个位置上进行的 List,该位置是 List 的末端,叫做栈的顶(top),对于栈的基本操作有 push 和 pop,前者是插入,后者是删除。 栈也是 FIFO 表。 栈的实现有两种,一种是使用数组,一种是使用链表。 栈的应用 平

  • 本文向大家介绍JavaScript实现随机点名器实例详解,包括了JavaScript实现随机点名器实例详解的使用技巧和注意事项,需要的朋友参考一下 你是公司的程序员,年会的时候公司要给员工抽奖发福利,要求你写一个页面小程序,用来随机选出幸运员工,分设一二三等奖大致如下图示例:   以下是点名器的一种思路,页面比较简陋,只给出了满足最基本要求的代码户要用到计时器,随机数函数等 本抽奖一二三等奖都只设

  • 本文向大家介绍python 队列详解及实例代码,包括了python 队列详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 队列特性:先进先出(FIFO)——先进队列的元素先出队列。来源于我们生活中的队列(先排队的先办完事)。 Queue模块最常与threading模块一起构成生产-消费者模型,提供了一个适用于多线程编程的先进先出的数据结构,即队列。 该模块源码中包含5个类: 其中,Empty

  • 本文向大家介绍Linux INotif机制详解及实例代码,包括了Linux INotif机制详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 Linux INotif机制 一、 前言: 众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够

  • 本文向大家介绍Python heapq使用详解及实例代码,包括了Python heapq使用详解及实例代码的使用技巧和注意事项,需要的朋友参考一下  Python heapq 详解 Python有一个内置的模块,heapq标准的封装了最小堆的算法实现。下面看两个不错的应用。 小顶堆(求TopK大) 话说需求是这样的: 定长的序列,求出TopK大的数据。 大顶堆(求BtmK小) 这次的需求变得更加的

  • 本文向大家介绍C++ 反射机制详解及实例代码,包括了C++ 反射机制详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 C++ 反射机制 一.前言: Java有着一个非常突出的动态相关机制:Reflection,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括meth