day5模块学习--random模块
Python中的random模块用于生成随机数
下面具体介绍random模块的功能:
1.random.random()
#用于生成一个0到1的浮点数 随机浮点数:0<= n < 1.0
>>> import random
>>> random.random()
0.10014889182317255
>>> random.random()
0.9318386759483899
>>> random.random()
0.7933067981427825
2.random.uniform(a,b)
#用于生成一个指定范围内的随机浮点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成随机数n:a <= n <= b。如果a < b,则b <= n <= a。
>>> random.uniform(1,4)
3.1024302829110297
>>> random.uniform(4,1)
3.604505878728916
>>> random.uniform(2,3)
2.987738694261377
>>> random.uniform(3,3)
3.0
3.random.randint(a, b)
#用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n:a <= n <= b
>>> random.randint(1,3)
2
>>> random.randint(3,3)
3
4.random.randrange([start], stop[, step])
#从指定范围内,按指定基数递增的集合中,获取一个随机数
random.randrange(10,30,2),结果相当于从[10,12,14,16,...,28]序列中获取一个随机数。random.randrange(10,30,2)在结果上与random.choice(range(10,30,2)等效。
一直以为random.randrange()与random.randint()功能类似,只是randint()包含下限,而random.randrange()不包含下限,原来random.randrange()可以指定步长,说明这是一个区域其实,random.randint()在上下限随机去一个值,random.randrange()是在数列中随机去一个数。
>>> random.randrange(2,10,3)
5
>>> random.randrange(2,10)
3
>>> random.randrange(2,10,3)
8
5.random.choice(sequence)
#参数sequence表示一个有序类型。从序列中获取一个随机元素,sequence在Python不是一种特定的类型,而是泛指一系列类型。list,tuple,字符串(str)都属于sequence。
random.chocice是从sequence中随机取一个元素,如列表,字符串,元组中随机取一个元素。
>>> name = "alexssb"
>>> names = ("alex","250","is")
>>> x = list(range(2,8))
>>> random.choice(name) #从字符串中取值
'a'
>>> random.choice(names) #从元组中随机提取元素
'alex'
>>> random.choice(names)
'is'
>>> random.choice(x) #从列表中随机提取元素
4
6.random.shuffle(x[, random])
#用于将一个列表中的元素打乱,即将列表内的元素随机排列。
>>> random.shuffle(x)
>>> x
[3, 4, 7, 5, 6, 2]
random.shuffle(list)用于将列表里面的元素随机打乱。
7.random.sample(sequence, k)
#从指定序列中随机获取指定长度的片断并随机排列。sample函数不会修改原有序列。
>>> names = ["alex","tenglan","chunyun","geng","aoi","cang"]
>>> random.sample(names,4)
['chunyun', 'alex', 'geng', 'aoi']
>>> names
['alex', 'tenglan', 'chunyun', 'geng', 'aoi', 'cang']
random.sample(sequence,k)从列表中随机获取一个元素
下面现在用random模块来写一个随机验证码。我们知道,随机验证码有大小写字母组成。也包含数字。下面来看看如何生成一个随机验证码。
import random def verification_code():
'''生成一个随机验证码'''
lists = list(range(,))
code = ""
'''大写字母对应的数字编码'''
'''定义一个空的列表,用于存放大小写字母对应的值'''
for num in range(,):
'''小写字母对应的数字编码,凭借到一块'''
lists.append(num) for i in range():
random_num = random.randint(,) #随机值,当随机值与循环值相等的时候是字母,不相等的时候是数字,这样就生成了字母加数字的随机验证码
if i == random_num:
string = chr(random.choice(lists))
else:
string = str(random.randint(,))
code += string return code x = verification_code()
print(x)
上面代码生成一个6位数的随机验证码。
也可以生成一个随机验证码,让每次里面都包含数字和字母。如下:
import random def verification_code():
'''生成一个随机验证码'''
'''生成一个65-90,97-122的序列'''
numbers = list(range(,))
for num in range(,):
numbers.remove(num) '''把序列进行打乱'''
random.shuffle(numbers)
random_strs = random.sample(numbers,)
'''生成两个随机数'''
random_nums = []
'''存放随机验证码'''
for random_str in random_strs:
random_nums.append(chr(random_str))
for random_num in range(,):
random_nums.append(str(random.randint(,))) code = "".join(random_nums) return code x_code = verification_code()
print(x_code)
上面代码生成一个随机验证码,每次都包含字母,不会只有数字或者之后字母的情况发生。
day5模块学习--random模块的更多相关文章
- python第十七天---时间模块、random模块
作完一个作业,开始新的学习: 有由今天的时间有限所有学习了以下两个模块,明天继续! 时间模块.random模块 import time #!usr/bin/env python #-*-coding: ...
- python常用模块之random模块
python常用模块之random模块 在程序中很多会用到随机字符,比如登陆网站的随机验证码,通过random模块可以很容易生成随机字符串 1.random.randrange():返回1-10之间的 ...
- Py修行路 python基础 (二十)模块 time模块,random模块,hashlib模块,OS及sys模块
一.前提介绍: 可以开辟作用域的只有类,函数,和模块 for循环 if,else: 不能开辟自己的作用域 避免程序复用和重复调用,将这些写到一个.py文件中,做成一个模块,进行调 ...
- (转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...
- [时间模块、random模块]
[时间模块.random模块] time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏 ...
- python-Day5-深入正则表达式--冒泡排序-时间复杂度 --常用模块学习:自定义模块--random模块:随机验证码--time & datetime模块
正则表达式 语法: mport re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0 ...
- day5模块学习 -- os模块学习
python基础之模块之os模块 os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/ ...
- python学习之老男孩python全栈第九期_day019知识点总结——collections模块、时间模块、random模块、os模块、sys模块
一. collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:namedtuple.deque.Counte ...
- python学习之【第十六篇】:Python中的常用模块之OS模块、sys模块、random模块
1. OS模块 OS模块是与操作系统交互的一个接口.内部提供了以下方法: os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname& ...
随机推荐
- 解析Job,bpmn文件的小项目总结
1.在使用String类中split(String regex)切割字符串abcd.job遇得到job字符串时,直接使用split("."),导致数组超出界限错误 原因:得到的数组 ...
- [应用篇]第三篇 JSP 标准标签库(JSTL)总结
有一种友谊叫做: "陪我去小卖部." "不去," "我请你" "走." 你想起了谁:胖先生?还有人陪你吗? JSP 标准 ...
- Mongodb 笔记03 查询、索引
查询 1. MongoDB使用find来进行查询.find的第一个参数决定了要返回哪些文档,这个参数是一个文档,用于指定查询条件.空的查询会匹配集合的全部内容.要是不指定查询,默认是{}. 2. 可以 ...
- android 自定义TODO
1.找到setting -> editor -> TODO 2. 正则的写法参考以前的就可以 这样我们就可以自己写一个todo了 3.TODO过滤: 4. 然后选择要展示的TODO 这里就 ...
- 牛市必备的三个条件,A股现在还差几个
1.国家政策 2.中美贸易 3.资金支持 A股变化如神! 自本月10日受美股大跌的影响后,A股先是随之震荡跳水,千股跌停:随后因高层力挺和政策支持而V型反转,集体涨停:接着上演过山车走势,有时涨得令人 ...
- 天梯赛 L2-011. (二叉树) 玩转二叉树
题目链接 题目描述 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列.所谓镜面反转,是指将所有非叶结点的左右孩子对换.这里假设键值都是互不相等的正整数. 输入格 ...
- UNIX环境高级编程 第10章 信号
SIGSTOP和SIGKILL区别是:前者是使进程暂时停止,即中止,也就是说使进程暂停,将进程挂起,比如你在终端里面执行一个脚本或者程序,执行到一半,你想暂停一下,你按下ctrl+z,就会导致终端发送 ...
- Java中关于变量的几种情况
Java中关于变量的几种情况 1.继承时变量的引用关系 class Animals { int age = 10; void enjoy() { System.out.println("An ...
- 关于maven环境下使用pom.xml引入包名.lastUpdate包的解决办法
今天在导入POI-OOXML的时候总是缺失xmlbeans包,而且刷新pom文件总是生成一个lastupdate文件,大小为1KB,终于找到解决办法. 1.首先删除想要的jar包所在文件夹内的所有 . ...
- Codechef AMXOR
Problem Codechef Solution 我们可以按位进行考虑,如果一个 \(m_i\) 在某一位上为1,但 \(x_i\) 却取了0,那么我们就称它脱离了限制,更低位可以随便乱填.也就是说 ...