众所周知,python拥有丰富的内置库,还支持众多的第三方库,被称为胶水语言,随机函数库random,就是python自带的标准库,他的用法极为广泛,除了生成比较简单的随机数外,还有很多功能。使用random库:

import random

random库主要函数:

         函数名                      说明                 用法
random() 生成一个0~1之间的随机浮点数,范围 0 <= n < 1.0 random.random()
uniform(a,b) 返回a, b之间的随机浮点数,范围[a, b]或[a, b), 取决于四舍五入,a不一定要比b小 random.uniform(1,5)
randint(a, b) 返回a, b之间的整数,范围[a, b],注意:传入参数必须是整数,a一定要比b小 random.randint(0, 100)
randrang([start], stop[, step]) 类似range函数,返回区间内的整数,可以设置step。 random.randrang(1, 10, 2)
choice(seq) 从序列seq中随机读取一个元素 random.choice([1,2,3,4,5])
choices(seq,k) 从序列seq中随机读取k个元素,k默认为1 random.choices([1,2,3,4,5], k=3)
shuffle(x) 将列表中的元素打乱,俗称为洗牌。会修改原有序列。 random.shuffle([1,2,3,4,5])
sample(seq, k) 从指定序列中随机获取k个元素作为一个片段返回,sample函数不会修改原有序列 random.sample([1,2,3,4,5], 2)

random库中的大多数函数使用时,都需要先设计一个序列。如果我们不想每次都去定义,而只是想随机取出一些数字、字母组合的话,就需要用到另一个标准库string:

import string

用string库主要用里面定义的一些字符串常量:

   常量        值      说明
ascii_lowercase 'abcdefghijklmnopqrstuvwxyz' a-z全小写字母
ascii_uppercase 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' A-Z全大写字母
ascii_letters ascii_lowercase + ascii_uppercase 所有大小写字母
digits '0123456789' 0-9数字集合
hexdigits digits + 'abcdef' + 'ABCDEF' 十六进制集合
octdigits '01234567' 八进制集合
punctuation !"#$%&'()*+,-./:;<=>?@[]^_`{|}~ 特殊字符组合
printable digits + ascii_letters + punctuation + whitespace 所有字符集合

random库的使用举例:

1、对文件里的数据进行随机排序(类似名单洗牌,直接上代码,相信都看得懂)

import random
#打开文件
f=open(r'F:\py\123.txt','r')
#读取文件信息,赋予一个变量
data=f.read()
#关闭文件
f.close()
print('数据:',data)
print('\n')
#data是一个字符串,我们以‘,’分隔成一个列表
s=data.split(',')
#随机排序
random.shuffle(s)
print(s)

文件里的内容,也可以写成很多行,上面代码字符串分割时改动一下即可。

运行结果(可以多运行几遍看一下效果):

数据: A,B,C,D,E,F,G,H,I,J,K['I', 'K', 'G', 'J', 'D', 'E', 'F', 'C', 'A', 'B', 'H']

2、利用random实现简单的随机红包发放。

import random
def red_packet(total,num):for i in range(num-1):per=random.uniform(0.01,total/2)total=total- perprint('%.2f'%per)else:print('%.2f'%total)red_packet(10,5)

运行结果:

1.89
0.11
3.85
1.08
3.07

同样,多运行几次试试,会不一样。

3、string和random组合使用,随机验证码的生成。

import random,string
def gen_random_string(str_len):""":param str_len: 输入需要几位的字符串:return: """random_char = string.digits+string.ascii_lettersgen_char=random.sample(random_char,str_len)gen_random_str=''.join(gen_char)return gen_random_strprint(gen_random_string(4))

运行结果:

2TdH

以上只是random库的简单使用,当然还有很多其他的用法,大家可以去自己学习,一定要动手去实践哦!

Python随机函数库random的使用相关推荐

  1. python标准库random中函数的作用_Python随机函数库random的使用方法详解

    Python随机函数库random的使用方法详解 前言 众所周知,python拥有丰富的内置库,还支持众多的第三方库,被称为胶水语言,随机函数库random,就是python自带的标准库,他的用法极为 ...

  2. [Python标准库]random——伪随机数生成器

    Python 版本:1.4 及以后版本         random 模块基于 Mersenne Twister 算法提供了一个快速伪随机数生成器.原先开发这个生成器是为了向蒙特卡洛模拟生成输入,Me ...

  3. Python标准库random用法精要

    random标准库主要提供了伪随机数生成函数和相关的类,同时也提供了SystemRandom类(也可以直接使用os.urandom()函数)来支持生成加密级别要求的不可再现伪随机数序列. 1.rand ...

  4. python标准库random的方法randint_Python标准库Random

    基本方法 获取一个[0,1)的随机浮点数: import random print(random.random()) #输出 0.6701488343121276 获取指定区间的随机浮点数: impo ...

  5. Python爬虫笔记——随机函数(random,uniform,randint,randrange,shuffle,sample)

    random() random()方法:返回随机生成的一个实数,它在[0,1)范围内 运用random()方法的语法: import random #random()方法不能直接访问,需要导入rand ...

  6. python random包含尾部吗_Python标准库random的方法randint(m,n)用来生成一个[m,n]区间上的随机整数。...

    [判断题]已知列表 x = [1, 2, 3],那么执行语句 x = 3 之后,变量x的地址不变 [判断题]只能对列表进行切片操作,不能对元组和字符串进行切片操作 [单选题]Which is not ...

  7. 《python 题库集之基础练习》

    一.单项选择题(本大题共10小题,每小题2分,共20分) 1.想用一个变量来表示出生年份,下列命名中( )项最可取.B A. b_y B. birth_year C. birthYear D. bir ...

  8. Python题库(含答案)

    单项选择题 第一章python语法基础 1. Python 3.x 版本的保留字总数是C A 27 B 29 C  33 D  16 2.以下选项中,不是 Python 语言保留字的是C A whil ...

  9. Python中使用random随机函数与Matplotlib库绘制随机漫步图

    Python中使用random随机函数与Matplotlib库绘制随机漫步图 一.概述 随机现象在我们的生活中并不少见,我们常见的一次抛硬币的正反面,股票的走势等等,都是随机事件.这些不确定性事件给我 ...

最新文章

  1. JZOJ 5163. 【NOIP2017模拟6.25】PS的烦恼
  2. Java知识点详解 6 注解
  3. Linux 修改静态 IP
  4. STM32固件升级之 hypertrm(超级终端)使用(三)
  5. 怎样在Excel中添加水印?学会这个方法可以轻松搞定
  6. 【Matplotlib:隐藏边框,显示单个网格线,设置刻度间隔,隐藏刻度线】
  7. 如何查看台式机计算机网络密码,如何在电脑上查找当前的WiFi网络密码
  8. transPlotR 优雅的绘制基因转录本结构
  9. 操作系统中的信号量及P、V操作
  10. MyBatis - 批量插入
  11. nargin与varnargin
  12. 项目质量管理之持续改进
  13. vue中的路由守卫(导航守卫)
  14. Eric Lippert推荐的C#书单
  15. 工具条研究手记(2) - 认识CToolBar工具条类
  16. SwitchResX for Mac 屏幕分辨率修改工具
  17. C语言面试考点之一(常见关键字)
  18. 初中动画flash作品_初中信息技术 Flash动画制作教案
  19. 基于java+ssm的校园自行车租赁买卖系统-计算机毕业设计
  20. 一文搞懂漏洞严重程度分析

热门文章

  1. 国内排名前几的客流统计系统公司有哪些?
  2. Leaflet使用介绍
  3. 广大网友们快来帮帮弱小的我把!!!!Eclipse做web项目删除用户,如果第一次用户id错误,则再输入就会出现404错误( 已解决!!!!)
  4. Gem5的FS(全系统)模拟
  5. fastapi获取访客真实ip
  6. zblog php获取文章的第一张图片,zblog调用文中第一张图片作为缩略图,博主亲测可用...
  7. [何以解忧唯有颓废]老舒
  8. Android阿拉伯语UI适配问题汇总
  9. 开放世界游戏中的大地图的实现——内容制作篇/异次元篇
  10. [清华大学]计算机科学与技术