python常用模块之random模块
python常用模块之random模块
在程序中很多会用到随机字符,比如登陆网站的随机验证码,通过random模块可以很容易生成随机字符串
1.random.randrange():返回1-10之间的一个随机数
In [2]: random.randrange(0,10)
Out[2]: 1
In [3]: random.randrange(0,10)
Out[3]: 5
In [4]: random.randrange(0,10)
Out[4]: 2
2.random.randint():返回1-10之间的一个随机数
In [5]: random.randint(0,10)
Out[5]: 3
In [6]: random.randint(0,10)
Out[6]: 2
In [7]: random.randint(0,10)
Out[7]: 1
那么?random.randrange()和random.randint()的功能是一样的,为什么还要说呢?举个例子看一下:
# random.randrange()
In [15]: random.randrange(0,1)
Out[15]: 0
In [16]: random.randrange(0,1)
Out[16]: 0
In [17]: random.randrange(0,1)
Out[17]: 0
# random .randint()
In [18]: random.randint(0,1)
Out[18]: 1
In [19]: random.randint(0,1)
Out[19]: 1
In [20]: random.randint(0,1)
Out[20]: 1
In [21]: random.randint(0,1)
Out[21]: 0
总而言之,randrange不会包括1,而randint会包括1
# 随机选取0-100之间的偶数
In [23]: random.randrange(0,100,2)
Out[23]: 62
In [24]: random.randrange(0,100,2)
Out[24]: 78
In [25]: random.randrange(0,100,2)
Out[25]: 54
3.randdom.random():返回一个随机浮点数
In [26]: random.random()
Out[26]: 0.6650128371458242
In [27]: random.random()
Out[27]: 0.7953723772675672
4.random.choice():返回一个给定数据集合中的字符
In [31]: random.choice("abcdef!@#$%")
Out[31]: '$'
In [32]: random.choice("abcdef!@#$%")
Out[32]: '!'
5.random.sample():从多个字符中选取特定数量的字符
In [33]: random.sample("abcd!@#$",3)
Out[33]: ['@', 'c', 'd']
In [34]: random.sample("abcd!@#$",3)
Out[34]: ['b', '#', 'c']
6.生成随机字符串
In [35]: import string # 导入string模块
In [36]: string.digits # 数字
Out[36]: '0123456789'
In [37]: string.ascii_letters # ASCII码表中的英文字母
Out[37]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
In [38]: string.ascii_lowercase # 小写英文字母
Out[38]: 'abcdefghijklmnopqrstuvwxyz'
In [39]: string.ascii_uppercase # 大写英文字母
Out[39]: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
# 开始生成随机字符串
In [3]: random.sample("string.digits + string.ascii_letters",4) # 让数字和大小写的英文字母相加形成一个随机字符串池
Out[3]: ['i', 't', ' ', 's']
In [4]: random.sample("string.digits + string.ascii_letters",4)
Out[4]: ['t', 'g', 'n', 'r']
In [5]: random.sample("string.digits + string.ascii_letters",4)
Out[5]: ['n', '.', 's', 'i']
7.洗牌
In [6]: a = list(range(0,10))
In [7]: a
Out[7]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [8]: random.shuffle(a) # 打乱顺序称为洗牌
In [9]: a
Out[9]: [7, 9, 2, 8, 6, 0, 5, 4, 3, 1]
In [10]: random.shuffle(a)
In [11]: a
Out[11]: [0, 4, 5, 8, 1, 3, 6, 7, 9, 2]
python常用模块之random模块的更多相关文章
- (转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...
- Python之数据加密与解密及相关操作(hashlib模块、hmac模块、random模块、base64模块、pycrypto模块)
本文内容 数据加密概述 Python中实现数据加密的模块简介 hashlib与hmac模块介绍 random与secrets模块介绍 base64模块介绍 pycrypto模块介绍 总结 参考文档 提 ...
- python第十七天---时间模块、random模块
作完一个作业,开始新的学习: 有由今天的时间有限所有学习了以下两个模块,明天继续! 时间模块.random模块 import time #!usr/bin/env python #-*-coding: ...
- Py修行路 python基础 (二十)模块 time模块,random模块,hashlib模块,OS及sys模块
一.前提介绍: 可以开辟作用域的只有类,函数,和模块 for循环 if,else: 不能开辟自己的作用域 避免程序复用和重复调用,将这些写到一个.py文件中,做成一个模块,进行调 ...
- Python基础系列讲解——random模块随机数的生成
随机数参与的应用场景大家一定不会陌生,比如密码加盐时会在原密码上关联一串随机数,蒙特卡洛算法会通过随机数采样等等.Python内置的random模块提供了生成随机数的方法,使用这些方法时需要导入ran ...
- Python常用内置模块之xml模块
xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.从结构上,很像HTML超文本标记语言.但他们被设计的目的是不同的,超文本标记语言被设计用来显示 ...
- Python 入门之 内置模块 -- random模块
Python 入门之 内置模块 -- random模块 1.random模块 import random # random -- 随机数 (1)选择1-50之间随机的整数 print(random.r ...
- [时间模块、random模块]
[时间模块.random模块] time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏 ...
- python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...
随机推荐
- v4l2的学习建议和流程解析
v4l2,一开始听到这个名词的时候,以为又是一个很难很难的模块,涉及到视频的处理,后来在网上各种找资料后,才发现其实v4l2已经分装好了驱动程序,只要我们根据需要调用相应的接口和函数,从而实现视频的获 ...
- CentOS 7 Firewalld 常用操作
1.简介 Zone 级别 drop: 丢弃所有进入的包,而不给出任何响应block: 拒绝所有外部发起的连接,允许内部发起的连接public: 允许指定的进入连接external: 同上,对伪装的进入 ...
- ng2 quickstart
1.下载 git clone https://github.com/angular/quickstart.git quickstart-angular 2.安装模块 npm install 3.启动 ...
- python print和strip
在使用这两个模块时犯过错误,总结如下: 1.print print在打印时会自动加上换行,例如: >>> for i in xrange(1,5): ... print i ... ...
- LA 5135 井下矿工(点—双连通分量模板题)
https://vjudge.net/problem/UVALive-5135 题意:在一个无向图上选择尽量少的点涂黑,使得任意删除一个点后,每个连通分量至少有一个黑点. 思路: 首先dfs遍历求出割 ...
- 读书笔记: Microsot .NET企业级应用架构设计
Microsot .NET企业级应用架构设计 Dino Esposito Andrea Saltarello 编 陈黎夫 译 人民邮电出版社 第一部分 设计原则 第1章 当代架构师和架构 ...
- mysql数据库优化课程---14、常用的sql技巧
mysql数据库优化课程---14.常用的sql技巧 一.总结 一句话总结:其实就是sql中那些函数的使用 1.mysql中函数如何使用? 选择字段 其实就是作用域select的选择字段 3.转大写: ...
- 关系型数据库(RDBMS)与 MongoDB 的对应关系
谈一下关系型数据库(RDBMS)与 MongoDB 的对应关系:
- 《高级Web应用程序设计》作业(20170904)
作业1(类型-理论学习,上传ftp,截止日期9月20日) 1.请写出ASP.NET MVC的优点. 2.请写出默认项目模板中以下文件夹或文件的作用.App_Data文件夹.Content文件夹.Con ...
- Java集合详解3:Iterator,fail-fast机制与比较器
Java集合详解3:Iterator,fail-fast机制与比较器 今天我们来探索一下LIterator,fail-fast机制与比较器的源码. 具体代码在我的GitHub中可以找到 https:/ ...