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& ...
随机推荐
- Solr常用命令总结
前提条件: 安装solr版本:4.8.0 部署solr路径:/data/solr-4.8.0 1. 通过zookeeper上传一些配置信息: 通过zk命令将配置信息上传到zk环境中: /data/so ...
- java基础-Map集合
java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...
- Linux QT数据库之登录注册
视频链接:https://www.bilibili.com/video/av11673511/ main.cpp #include <QSqlDatabase> #include < ...
- Java操作Kafka执行不成功的解决方法,Kafka Broker Advertised.Listeners属性的设置
创建Spring Boot项目继承Kafka,向Kafka发送消息始终不成功.具体项目配置如下: <?xml version="1.0" encoding="UTF ...
- linux下常用的几个时间函数:time,gettimeofday,clock_gettime,_ftime
time()提供了秒级的精确度 1.头文件 <time.h> 2.函数原型 time_t time(time_t * timer) 函数返回从TC1970-1-1 0:0:0开始到现在的秒 ...
- 2008ZJOI树的统计
codevs 2460 树的统计 http://codevs.cn/problem/2460/ 2008年省队选拔赛浙江 题目等级 : 大师 Master 题目描述 Description 一棵 ...
- 基于受限玻尔兹曼机(RBM)的协同过滤
受限玻尔兹曼机是一种生成式随机神经网络(generative stochastic neural network), 详细介绍可见我的博文<受限玻尔兹曼机(RBM)简介>, 本文主要介绍R ...
- Java 对象初始化生命周期
class Man { String name; int age = 20; public static int sex = 1; Man(String name, int age) { //supe ...
- 写给“有钱大爷”、”美工殿下”、“前端文艺青年”的微信HTML5页面设计建议
============================== 2018更新 iphone X 的设计内容 ============================== 我保证你一分钟就 ...
- js中同步与异步处理方法
在使用异步请求时,有时需要将异步请求的结果返回给另一个js函数,此种情况下会出现未等异步请求返回请求结果,该发送请求所在js函数已经执行完后续操作,即已经执行return ,这样会导致return的结 ...